Ralat menyahkod url
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-23 09:13:56
0
2
828

Masalah: Teks bahasa Cina yang dihantar oleh Android ke pelayan latar belakang dinyahkodkan kepada aksara yang bercelaru. .

Persekitaran:

1. tomcat,在server.xml中已经明确了“utf-8".
2. 安卓已经明确了使用Utf-8编码
3. 在后台使用` java.net.URLDecoder.decode(url, "utf-8");`对url进行解码,但是解码出错。。中文是”??“。

Sepatutnya masalah pengekodan, tetapi. . .

Terima kasih banyak-banyak. . .

Selain itu, saya menggunakan pernyataan berikut untuk menguji pengekodan:

if (url.equals(new String(url.getBytes("iso8859-1"), "iso8859-1"))) {
    url = new String(url.getBytes("iso8859-1"), "utf-8");
    System.out.println("ios8859-1");
}
if (url.equals(new String(url.getBytes("GB2312"), "GB2312"))) {
    url = new String(url.getBytes("GB2312"), "utf-8");
    System.out.println("gb2312");
}

Output

ios8859-1
gb2312

. . . .

曾经蜡笔没有小新
曾经蜡笔没有小新

membalas semua(2)
淡淡烟草味

Adakah terdapat penapis pengekodan ditambahkan pada latar belakang?

曾经蜡笔没有小新

URLEncode/Decode adalah untuk nilai parameter dalam URL untuk mengelakkan konflik dengan format URL itu sendiri. Tomcat akan secara automatik menyahkod nilai parameter URL, jadi anda hanya perlu mendapatkannya secara terus. Contohnya, JSP ini:

<%@ page import="java.net.URLEncoder" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    System.out.println("name=" + request.getParameter("name"));
%>
<a href="?name=<%=URLEncoder.encode("你好", "UTF-8")%>">你好</a>
<a href="?name=你好">你好</a>

Sebenarnya, tiada perbezaan antara dua pautan "Hello" Anda boleh membuka kod sumber halaman web untuk melihat alamat pautan mereka dan yang satu lagi tidak nilai yang betul, yang bermaksud request.getParameter("name") Kandungan yang terhasil adalah betul-betul sama.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan