当前位置: 首页 > 面试题库 >

在Java中读取Unicode字符

年光明
2023-03-14
问题内容

我对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或Notepad
++)检查文本文件是否正确。或使用您最喜欢的十六进制编辑器对其进行编辑-不应包含反斜杠。

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



 类似资料:
  • 问题内容: Java中有什么办法可以让我获得与任何字符均等的Unicode?例如 假设有一个方法。呼叫应该返回。 问题答案: 你可以使用以下一种衬里对任何Java字符进行处理: 但这仅适用于Unicode 3.0以下的Unicode字符,这就是为什么我建议你可以对任何Java字符都使用它。 由于Java是在Unicode 3.1出现之前进行设计的,因此Java的char原语不足以表示Unicode

  • 问题内容: 真正简单的问题。我需要在Java程序中读取Unicode文本文件。 我习惯于使用带有BufferedReader FileReader组合的纯ASCII文本,这显然不起作用:( 我知道我可以使用“缓冲读取器”以“传统”方式读取字符串,然后使用类似以下方式的字符串进行转换: 但是,有没有办法将阅读器包装在“转换器”中? 编辑:文件以FF FE开头 问题答案: 您不会包装Reader,而是

  • 我刚来Java,如果这是个明显的问题,我很抱歉。 我正在尝试逐个字符读取字符串以创建树节点。例如,输入,节点为 我注意到了 我可以用一个循环来获得所有的角色吗?就像 我试过了,但不管用。 我该怎么做? 非常感谢你的帮助。 扫描器读取器=新扫描器(System.in);System.out.println(“将节点输入为大写字母,不带空格,结尾为'/'”);int i=0;char node=rea

  • 问题内容: 我需要一种编程方式来获取字符串中每个字符的十进制值,以便将它们编码为HTML实体,例如: UTF-8: 小数: 问题答案: 我怀疑您只是对从转换为,这是隐式的: 编辑:如果要处理代理对,则可以使用类似以下内容的方法:

  • 我创建了一个java代码来存储上传的文本文档。然后我返回该文件中的文本。所有文本均为“僧伽罗语”。UTF-8编码文本 输出直接发送到jsp页面,在那里显示为'??????????????'。 Windows 8.1、tomcat和java版本7。我已经用僧伽罗字符测试了jsp,它们正在工作。我添加了UTF-8作为内容类型。 我试过这个,这个,还有这个。

  • 问题内容: 我正在为我的自定义StringDatatype编写单元测试,并且需要写下4字节的unicode字符。“ \ U”-不起作用(非法转义字符错误),例如:U + 1F701(0xf0 0x9f 0x9c 0x81)。如何将其写成字符串? 问题答案: Unicode代码点不是4个字节。它是整数(目前介于U + 0000到U + 10FFFF之间)。 您的4个字节是(很自然地)其UTF-8编码