java - 为什么调用 .getBytes() 时字符串 "¿"会被转换为 "¿"

标签 java utf-8 character-encoding

使用写出字符串“¿”时

System.out.println(new String("¿".getBytes("UTF-8")));

¿ 被写成而不只是 ¿。

为什么?我们该如何解决这个问题?

最佳答案

您不必使用 UTF-16 来解决此问题:

new String("¿".getBytes("UTF-8"), "UTF-8");

工作得很好。只要给 getBytes() 方法的编码与传递给 String 构造函数的编码相同,就应该没问题!

关于java - 为什么调用 .getBytes() 时字符串 "¿"会被转换为 "¿",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/176084/

相关文章:

java - 如何从通过 MyBatis 映射器方法调用的 PostgreSQL 函数获取服务器消息(引发通知)?

javascript - 在 HTML 中使用德语字符(例如变音符号)

html - 规范标签和 UTF8

java - 如何在 spring data rest/HATEOAS 中创建一个引用已经存在的子实体的新父实体

Java String.split() 有时会给出空白字符串

java - 调用构造函数时的 NPE

macos - 在 OS X Lion 中,LANG 未设置为 UTF-8,如何修复?

perl - 如何将 UTF8 编码的非 ASCII 字符转换为 Perl 中的 ASCII 等效字符?

xml - xsd 模式可以验证编码吗? UTF-8,可能吗?

java - 转义 - 从 Java 属性读取时的字符