Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.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将网页中的UTF16字符写入文件_Java_Encoding_Io - Fatal编程技术网

用Java将网页中的UTF16字符写入文件

用Java将网页中的UTF16字符写入文件,java,encoding,io,Java,Encoding,Io,我在Java编写包含UTF16字符(如分数斜杠,即0x2044)的网页文件时遇到问题。当我使用IE将页面保存到磁盘并用编辑器打开时,字符显示为“4 1⁄2”。如果我用十六进制编辑器打开,我会看到0044(不是2044)。任何数量的其他方法(在文件中或控制台上)都会产生“4 1?2”。我尝试过的方法包括: HttpMethod method = new GetMethod(...); method.getResponseBodyAsString(); EntityUtils.toString(en

我在Java编写包含UTF16字符(如分数斜杠,即0x2044)的网页文件时遇到问题。当我使用IE将页面保存到磁盘并用编辑器打开时,字符显示为“4 1⁄2”。如果我用十六进制编辑器打开,我会看到0044(不是2044)。任何数量的其他方法(在文件中或控制台上)都会产生“4 1?2”。我尝试过的方法包括:

HttpMethod method = new GetMethod(...);
method.getResponseBodyAsString();
EntityUtils.toString(entity, HTTP.UTF_16);
IOUtils.toString(method.getResponseBody(), "utf-16");

我的最终目标是将使用正则表达式找到的页面片段写入文件。

周围的字节是什么?页面内容类型是什么?您确定是指UTF-16吗?你真的是说Unicode吗?(Unicode字符通常在网页中以UTF-8编码…)以下是周围的字节:以下是周围的字节:34 00 2D 00 31 00 44 20 32 00 20 00 20 00 69 00 6E 00。所以,是的,事实上,它应该是4420。这是URL,标题是charset=UTF-8。听起来你看到的是UTF16小端,而不是大端。