我想在类文件中设置一个unicode字符:
TextView tv = ...;
tv.setText("·");
在.java文件中使用unicode字符有什么问题吗?
由于
答案 0 :(得分:4)
没有。 Java字符串支持Unicode,因此您不应遇到任何问题。您可能必须检查TextView
类是否处理所有Unicode字符(它应该),但Java本身将处理unicode字符。
您还应确保使用正确的编码设置保存文件。基本上这意味着您的编辑器应该将java文件保存为UTF-8编码的Unicode。有关详细信息,请参阅此答案的评论。
答案 1 :(得分:3)
在.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转义序列)。
姓名
native2ascii
- 原生于ASCII转换器概要
native2ascii [ options ] [ inputfile [outputfile]]
描述
Java编译器和其他Java工具只能处理包含Latin-1或Unicode编码(\udddd
表示法)字符的文件。 native2ascii将包含其他字符编码的文件转换为 包含Latin-1或Unicode编码的字符的文件。如果省略outputfile,则使用标准输出进行输出。另外,如果省略inputfile,则使用标准输入进行输入。