首页 > 解决方案 > 无法编译具有非 ASCII 字符的 Java 文件

问题描述

重要的:

我必须只使用普通的 Windows 记事本(IDE、Notepad++ 或任何其他文本编辑器都不允许)。

所以我有一个简单的类:

class Test{
    public static void main(String[] args){
       char c = 'қ';
       System.out.println(c);
    }
 }

默认情况下,记事本使用 ANSII 编码保存文本文件,但如您所见,我的代码中有一个非 ANSII 字符。我可以通过命令提示符编译和运行这段代码,但输出是?而不是қ,这似乎很明显。当我将文件的编码更改为 UTF-8 时,编译器会引发错误。我在尝试编译 java 代码时阅读了这篇文章 Illegal Character但没有解决我的特定问题的方法,因为正如我上面所写的,除了 Windows 记事本之外,我不允许使用任何文本编辑器。

谢谢!

标签: javaencodingcompiler-errorsnotepadbyte-order-mark

解决方案


可能你需要这样:

char c = '\u039A'; 

我不知道你的“k”的代码,但你可以在https://www.ssec.wisc.edu/~tomw/java/unicode.html上找到它

也希望Windows有这个字符在控制台输出

ps windows的控制台有一定的code page。尝试在控制台中更改它,例如:

REM change CHCP to UTF-8
CHCP 65001
CLS

并记住Windows控制台中的不同字体,其中一些无法绘制特定符号。


推荐阅读