【发布时间】:2015-10-26 17:01:23
【问题描述】:
我正在读取一个在文本中包含 unicode 转义序列的文件,这里是示例:
\u201c@hannah_hartzler:排队等候看门人! @nerk97 @ShannonWalkup\u201d\ud83d\ude0d\ud83d\ude0d\ud83d\ude0d\ud83d\ude0d\u2764\u2764\u2764
当我用BufferedReader 读取它并用FileWriter 将它写回另一个文件时,文本变成这样:
——@hannah_hartzler:排队等候看门人! @nerk97 @ShannonWalkupâ€ðŸ∼ðŸ∼ðŸ∼ðŸ∼â¤â¤â¤
由于是 UTF-8 编码,但我想要的是:
“@hannah_hartzler:排队等候看门人! @nerk97 @ShannonWalkup”??????????????????❤❤❤
我的问题是,如何正确读取和写入文本行,以便打印正确的字符?
我不会'修改文本行,这只是unicode和utf-8之间转换的问题,这是我的代码:
FileReader fileReader = new FileReader("tweets.json");
BufferedReader bufferedReader = new BufferedReader(fileReader);
File tmp = new File("out.txt");
FileWriter fileWriter = new FileWriter(tmp);
BufferedWriter bw = new BufferedWriter(fileWriter);
...
String line = bufferedReader.readLine();
bw.write(line);
【问题讨论】:
-
您的平台默认编码是 UTF8,您的代码只是创建原始文件的精确副本,或者不是,您正在创建文件的副本,但使用不同的编码.新文件仍然包含 unicode 转义序列。您需要一些代码来提取 unicode 转义序列并将它们转换为实际字符。该文件是否真的包含转义序列,或者您的文本编辑器是否将特殊字符转换为转义序列?
标签: java unicode utf-8 character-encoding