java - 无法显示特定的unicode字符

时间:2018-02-07 07:02:57

标签: java unicode utf-8

下面是我显示unicode字符的代码,但是那时只能显示一个unicode字符。为什么呢?

byte extra[] = " ‘ ’ ” “ 《 》 : ; ” ".getBytes();
String extravalue = new String(extra, "UTF-8");
System.out.println(extravalue);

The Result
从上图中可以看出,角色' “'显示为' ?? '和其他人显示为他们的原始角色。为什么?
为了展示它,我该怎么办?我想用文件中的字符串与上面的字符进行比较。

2 个答案:

答案 0 :(得分:1)

还需要在调用String.getBytes()时指定编码,否则它将采用您平台的默认编码。在您的情况下,这可能不是UTF-8

byte extra[] = " ‘ ’ ” “ 《 》 : ; ” ".getBytes("UTF-8");

如果您想在不同的平台/操作系统上正确运行代码,则无论如何都需要这样做。

但是,你的情况很奇怪。我已尝试使用不同平台的普通字符集,包括CP1252和CP1250,并为所有字符提供问号。

您的字体也可能不支持特定字符。但是,您的字体似乎不太可能支持"左双引号"但不是"右双引号"。

答案 1 :(得分:0)

将这些字符放入文件中并使用扫描仪读取它,并以某种方式工作。哇...... ._。