我正在尝试添加一个乌尔都语字符串Ùò־
,如下所示:
class UnicodeCheck {
public static void main(String args[]) {
try {
File f = new File("C:/Users/user/Desktop/unicodecheck.txt");
FileWriter writer = new FileWriter(f);
writer.write("غزل");
writer.close();
} catch(Exception exc) {
exc.printStackTrace();
}
}
}
当我尝试编译上述程序时,出现此错误。
UnicodeCheck.java:1: illegal character: \187
class UnicodeCheck {
^
UnicodeCheck.java:1: illegal character: \191
class UnicodeCheck {
^
2 errors
我不明白这个错误。为什么会出现此错误以及如何克服此错误?
最佳答案
文件开头的字符来自一些文本编辑器喜欢插入到文件开头的字节顺序标记。然而,Java 编译器不接受带有 BOM 的文件。您有两个选择:
- 使用允许以 Unicode 格式保存文件而无需 BOM 的文本编辑器,例如 Notepad++。
在源代码中仅使用 ASCII 字符。在需要 Unicode 字符的地方使用
\uXXXX
-转义码。 JDK 附带了一个实用程序,用于将“ native ”文本转换为这种编码,称为native2ascii
。例如,writer.write("غزل");
将转换为
writer.write("\u063a\u0632\u0644");
关于java - 当我尝试包含乌尔都语字符串时,为什么会出现编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12832114/