Rumah  >  Soal Jawab  >  teks badan

Ralat menyahkod url

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

. . . .

曾经蜡笔没有小新曾经蜡笔没有小新2697 hari yang lalu797

membalas semua(2)saya akan balas

  • 淡淡烟草味

    淡淡烟草味2017-06-23 09:15:56

    Adakah terdapat penapis pengekodan ditambahkan pada latar belakang?

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-23 09:15:56

    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.

    balas
    0
  • Batalbalas