如何在Java源文件中输入多个Unicode字符串(包括从右到左的读取顺序)



我正在测试一段Java代码,需要创建一个字符串数组。这些字符串是不同语言的单词,包括像阿拉伯语这样从右到左阅读顺序的单词(不知道这是否重要…)

所以我需要做这样的事情:

ArrayList<String> words = ...
words.add(<word-in-english>);
words.add(<word-in-chinese>);
words.add(<word-in-russian>);
words.add(<word-in-arabic>);

将这些内容放入Java代码的最佳方式是什么?除了对字符串中的每个字符使用"\u"转义之外,还有其他方法吗?感谢

您可以将编辑器/IDE的编码设置为UTF-8,也可以将java编译器设置为UTF-8。对于国际项目来说,这开始越来越成为一种惯例。

不幸的是,您需要将IDE字体设置为完整的unicode字体,可能是35MB左右。或者用于丢失的中文"\uXXXX"转义,使用native2ascii

根据您的来源,您可能会使用每种语言的文件。

为了让它工作,你必须做以下两件事:

  • 以Unicode格式(UTF-8)保存源文件。如何做到这一点取决于IDE/文本编辑器。

  • 通过指定UTF-8字符集编译文件。像这样:

javac -encoding utf-8 MyFile.java

据我所知,将任何Unicode字符放入java代码(包括RTL语言)中都没有问题。这有点取决于您的IDE,但我相信所有现代IDE都支持RTL类型。至少Eclipse做到了。

您必须使用UTF-8字符集保存源代码。同样,这取决于您的IDE。我用eclipse右键单击文件,然后选择resource并将其编码更改为UTF-8。

有时在IDE中键入RTL文本并不方便。在这种情况下,使用其他程序(MS Word、记事本等)键入文本,然后将其复制并粘贴到java代码中。

BTW考虑将unicode字符串存储在单独的资源文件中。它通常更方便。

不应该这样做:

BufferedReader bufReader =
    new BufferedReader(
        new InputStreamReader(new FileInputStream(file_name), "UTF-16"));  

请注意UTF-16

最新更新