Mar*_*arc 2 java enums encoding internationalization
鉴于此枚举类型:
public enum PackageType {
BEHAELTER("BH", "Behälter")
String value;
String id;
String description;
PackageType(String id, String description) {
this.id = id;
this.description = description;
}
}
Run Code Online (Sandbox Code Playgroud)
使用这个枚举时,Behälter中的变音符号"ä"显示错误.即使我在构造函数中调试并观察属性"description",我也看错了.
有没有Java规范禁止像这样的结构中的任何特殊字符?在这一点上我很无能为力.
我注意到在将此枚举序列化为JSON并将其返回到我的前端时.
谢谢
它与枚举无关 - 如果您只有这样的控制台应用程序,您可能会看到同样的事情:
public class Test {
public static void main(String[] args) {
String x = "Behälter";
System.out.println((int) x.charAt(3));
}
}
Run Code Online (Sandbox Code Playgroud)
可能的问题:
诚然,第一种选择是最有可能的.如果是这种情况,则很容易测试 - 将字符串更改为"Beh\u00e4lter"- 您感兴趣的字符是U + 00E4,因此Unicode转义允许您在字符串文字中表达它,而不会在实际源代码中超出ASCII.
如果确实有效,那么您可以回到之前的代码,但检查源文件的实际保存方式,以及编译器选项的含义.(我个人建议使用UTF-8作为完全Unicode,支持良好的编码.)