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

标签 java encoding

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

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

因此系统应该显示“u”字符,上面有“^”。而是显示“?”。

有什么想法吗?

最佳答案

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

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

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

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

关于java - Windows-1252 编码 - 显示不正确的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18424354/

相关文章:

java - 在 Spark 上下文中创建计时器

java - 查找是否至少有一个 - Observable Java 8 Rx

java对象getClass()方法返回null

html - 在心脏的电子邮件主题行中使用什么 HTML 实体?

python - 在 Python StringIO 模块中使用 readline 函数

xml - 如何强制将 XML 编码为 UTF-8?

基于返回类型的 Java 泛型转换?

java - 即使我将编码设置为 UTF-8,文件也不会以 UTF-8 编码保存

python - KOI8-R : Having trouble translating a string

java - 如何在Android项目中使用Java中的weightSum?