在java中打印unicode字符

新手上路,请多包涵

在java中显示 unicode 字符显示“?”符号。例如,我尝试打印“अ”。它的 unicode 编号是U+0905,html表示是“अ”。下面的代码打印“?”而不是 unicode 字符。

 char aa = '\u0905';
String myString = aa + " result" ;
System.out.println(myString); // displays "? result"

有没有办法直接从 unicode 本身显示 unicode 字符而不使用 unicode 数字?即“अ”保存在文件中,现在在 jsp 中显示文件。

原文由 Redone 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 899
1 个回答

Java定义了两种类型的流,字节流和字符流。

System.out.println() 无法显示 Unicode 字符的主要原因是 System.out.println() 是一个字节流,只处理 16 位字符的低位八位。

为了处理 Unicode 字符(16 位 Unicode 字符),您必须使用基于字符的流,即 PrintWriter。

PrintWriter 支持 print() 和 println() 方法。因此,您可以像在 System.out 中使用它们一样使用这些方法。

 PrintWriter printWriter = new PrintWriter(System.out,true);
char aa = '\u0905';
printWriter.println("aa = " + aa);

原文由 Mohammed Tamimi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题