Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中如何处理字符集差异_Java_Html_Utf 8_Character Encoding - Fatal编程技术网

Java中如何处理字符集差异

Java中如何处理字符集差异,java,html,utf-8,character-encoding,Java,Html,Utf 8,Character Encoding,我使用这个servlet从另一个域提取HTML内容,并将其包含在我自己的Ajax页面中,它将响应指定为“UTF-8”: 我提取的文档有一个元标记,如下所示: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta> 我复制并粘贴到我自己的页面上,使其完全匹配。根据浏览器页面信息,它肯定使用“UTF-8”编码。然而,在提取的html内容中,我仍然会得到“而不是” 它们实际上包含

我使用这个servlet从另一个域提取HTML内容,并将其包含在我自己的Ajax页面中,它将响应指定为“UTF-8”:

我提取的文档有一个元标记,如下所示:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>

我复制并粘贴到我自己的页面上,使其完全匹配。根据浏览器页面信息,它肯定使用“UTF-8”编码。然而,在提取的html内容中,我仍然会得到“而不是”


它们实际上包含在这个
ProxyServlet
的responseText中。我认为显式地定义响应内容类型和输出流字符集可以处理这个问题,但我肯定遗漏了什么?以前有人解决过这个问题。

您可以通过byte[]缓冲区从ony字节流复制到另一个字节流,而不是将字节流转换为chars,反之亦然。或者使用Spring util:

FileCopyUtils.copy(uri.getInputStream(), response.getOutputStream());
或者明确地说:

byte[] buffer = new byte[BUFFER_SIZE];
int bytesRead = -1;
while ((bytesRead = in.read(buffer)) != -1) {
    out.write(buffer, 0, bytesRead);
}
out.flush();
它将保证数据按原样复制(不可能通过错误的字符把事情搞砸)

byte[] buffer = new byte[BUFFER_SIZE];
int bytesRead = -1;
while ((bytesRead = in.read(buffer)) != -1) {
    out.write(buffer, 0, bytesRead);
}
out.flush();