在.java文件中使用unicode字符?

时间:2012-06-06 04:28:02

标签: java android unicode

我想在类文件中设置一个unicode字符:

TextView tv = ...;
tv.setText("·");

在.java文件中使用unicode字符有什么问题吗?

由于

2 个答案:

答案 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,则使用标准输入进行输入。