我想在 Java 中输入可能包含字母 åäö 的字符串,但 Scanner 将它们转换为其他字符。我也尝试过 utf-8:
String s1 = new Scanner(System.in).nextLine();
String s2 = new Scanner(System.in, "utf-8").nextLine();
System.out.println(s1 + "|" + (int)s1.charAt(0));
System.out.println(s2 + "|" + (int)s2.charAt(0));
System.out.println((int)'å' + "|" + (int)'?');
Run Code Online (Sandbox Code Playgroud)
这产生:
å
å
?|8224
?|65533
229|63
Run Code Online (Sandbox Code Playgroud)
所有字符都变成 65533 和 utf-8。如果没有 utf-8,ä 变为 8222,ö 变为 8221,Å 变为 65533,Ä 变为 381,Ö 变为 8482。
是否有一些替代输入法允许 åäö?
我正在运行 java 8u25 并且我正在从 Windows 控制台运行该程序。
问题不在于 Java,而在于 Windows 控制台,它使用自己的编码。您可以使用chcp命令显示它。很可能是 Codepage 850。在 Java 中,你可以像这样使用它
new Scanner(System.in, "Cp850")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3175 次 |
| 最近记录: |