我想在这样的类文件中设置一个 unicode 字符:
TextView tv = ...;
tv.setText("·");
在 .java 文件中使用 unicode 字符有什么潜在的问题吗?
谢谢
不会。Java 字符串支持 Unicode,因此您不会遇到任何问题。您可能必须检查TextView
该类是否处理所有 Unicode 字符(它应该),但 Java 本身将处理 unicode 字符。
您还应该确保使用正确的编码设置保存文件。本质上,这意味着您的编辑器应该将 java 文件保存为 UTF-8 编码的 Unicode。有关此问题的更多详细信息,请参阅对此答案的评论。
在 .java 文件中使用 unicode 字符有什么潜在的问题吗?
如您所知,JVM 中的字符串存储为 Unicode - 所以问题是如何处理Java 源文件中的 Unicode ...
简而言之,使用 Unicode 就可以了。有几种方法可以接近它......
默认情况下,javac
编译器期望源文件采用平台默认编码。这可以使用-encoding
标志覆盖:
-encoding encoding
设置源文件编码名称,如 EUCJIS/SJIS/ISO8859-1/UTF8。如果-encoding
未指定,则使用平台默认转换器。
或者,如果它是单个字符(看起来是这样),您可以将源文件保留在平台默认编码中,并使用 Unicode 转义序列指定字符:
tv.setText("\u1234");
... 其中 '1234' 是您想要的字符的 Unicode 值。
另一种选择是首先将文件保存为与 Unicode 兼容的编码(例如 UTF-8),然后用于native2ascii
将该文件转换为您的本机编码(它将任何超出范围的字符转换为相应的 Unicode 转义序列)。
NAME
native2ascii
- 本机到 ASCII 转换器概要
native2ascii [ options ] [ inputfile [outputfile]]
描述
Java 编译器和其他 Java 工具只能处理包含 Latin-1 或 Unicode 编码(\udddd
符号)字符的文件。native2ascii 将包含其他字符编码的文件转换为包含 Latin-1 或 Unicode 编码字符的文件。如果省略了 outputfile,则使用标准输出进行输出。此外,如果省略 inputfile,则使用标准输入进行输入。