gpt4 book ai didi

java - 枚举常量中的特殊字符(德语变音符号)

转载 作者:行者123 更新时间:2023-12-03 19:42:22 24 4
gpt4 key购买 nike

给定这个枚举类型:

    public enum PackageType  {
BEHAELTER("BH", "Behälter")

String value;
String id;
String description;

PackageType(String id, String description) {
this.id = id;
this.description = description;
}
}

使用此枚举时,Behälter 中的变音符号“ä”显示错误。即使我在构造函数中调试并观察属性“描述”,我也看错了。

是否有 Java 规范禁止在这样的结构中使用任何特殊字符?在这一点上我很无能为力。

我注意到在将此枚举序列化为 JSON 并将其返回到我的前端时。

谢谢

最佳答案

这与枚举无关 - 如果您只有这样的控制台应用程序,您可能会看到同样的事情:

public class Test {
public static void main(String[] args) {
String x = "Behälter";
System.out.println((int) x.charAt(3));
}
}

可能出现的问题:

  • 您没有告诉编译器使用正确的编码(这是最有可能的选择)
  • 您的调试器无法正确显示该值
  • 您的 JSON 序列化工作不正常(例如,您没有发送正确的编码)
  • 您的 JSON 反序列化工作不正常(例如,前端忽略了您指定的编码)

老实说,第一个选项是最有可能的。如果是这种情况,测试起来很容易——将字符串更改为 "Beh\u00e4lter"——你感兴趣的字符是 U+00E4,这样 Unicode 转义就可以让你用在实际源代码中不超出 ASCII 的字符串文字。

如果确实有效,那么您可以返回到之前的代码,但检查您的源文件实际是如何保存的,以及您的编译器选项说了什么。 (我个人建议使用 UTF-8 作为一种完整的 Unicode,得到良好支持的编码。)

关于java - 枚举常量中的特殊字符(德语变音符号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5522489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com