Windows-1252编码 - 显示不正确的字符

时间:2013-08-24 23:57:13

标签: java encoding

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

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

结果系统应显示“u”字符,其上方带有“^”。而是显示“?”。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

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

消除Windows-1252作为问题的原因的一种方法是使用Unicode转义编写等效字符串; e.g。

    System.out.println("\u00fb");

答案 1 :(得分:1)

我已经找到了这个。

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

从现在开始,Windows 1250和1252个字符似乎都显示正常。