4

我有一个在 Windows-1252 中编码的字符缓冲区。但是,当我创建一个具有适当编码的新字符串时,而不是预期的结果,我经常得到询问标记,例如。

byte[] tmps = new byte[] {(byte) 0xfb};
System.out.println (new String (tmps,0,1,"Windows-1252" ));

结果,系统应该显示“u”字符,上面带有“^”。相反,它显示“?”。

任何想法?

4

2 回答 2

1

我已经找到了这个。

菜单运行/运行配置/下一个 Java 应用程序和您自己的应用程序名称/选项卡 common/下一个编码设置为 UTF-8

而且从现在开始,windows 1250 和 1252 字符似乎都可以正常显示。

于 2013-08-25T22:55:41.717 回答
1

首先 Windows-1252受支持的编码:

我认为这里最可能的问题是在输出端。具体来说,Java 可能认为您的语言环境的默认字符集是 ASCII 或不支持该代码点的字符集。

消除问题原因的一种方法Windows-1252使用Unicode 转义符编写等效字符串;例如

    System.out.println("\u00fb");
于 2013-08-25T02:30:09.540 回答