gpt4 book ai didi

java - 在java中读取unicode字符

转载 作者:搜寻专家 更新时间:2023-11-01 04:06:57 24 4
gpt4 key购买 nike

我对 java 有点陌生,当我将一个 unicode 字符串分配给

  String str = "\u0142o\u017Cy\u0142";
System.out.println(str);

final StringBuilder stringBuilder = new StringBuilder();
InputStream inStream = new FileInputStream("C:/a.txt");
final InputStreamReader streamReader = new InputStreamReader(inStream, "UTF-8");
final BufferedReader bufferedReader = new BufferedReader(streamReader);
String line = "";
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
stringBuilder.append(line);
}

为什么两种情况下的结果不同文件 a.txt 也包含相同的字符串。但是当我打印文件的输出时,它打印 z\u0142o\u017Cy\u0142 而不是实际的 unicode 字符。如果我想在打印字符串时也打印内容,我该怎么做。

最佳答案

你的代码应该是正确的,但我猜文件“a.txt”不包含用UTF-8编码的Unicode字符,而是转义字符串“\u0142o\u017Cy\u0142”。

请使用支持 UTF-8 的编辑器(例如 Windows 上最新版本的记事本或 Notepad++)检查文本文件是否正确。或者使用您最喜欢的十六进制编辑器对其进行编辑 - 它不应包含反斜杠。

我尝试使用“€”作为文件的 UTF-8 编码内容,结果打印正确。请注意,并非所有 Unicode 字符都可以打印,这取决于您的终端编码(在 Windows 上确实很麻烦)和字体。

关于java - 在java中读取unicode字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3630609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com