如何在Java源文件中输入多个Unicode字符串(包括lesft读取顺序的权限)?

如何在Java源文件中输入多个Unicode字符串(包括lesft读取顺序的权限)?,java,unicode,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-ara

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

所以我需要这样做:

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

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

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

不幸的是,您需要将IDE字体设置为完整的unicode字体,可能是35MB左右。或者使用
native2ascii
转义缺少的中文“\uxxx”


根据您的源代码,您可以使用每种语言的文件。

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

不幸的是,您需要将IDE字体设置为完整的unicode字体,可能是35MB左右。或者使用
native2ascii
转义缺少的中文“\uxxx”


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

不应该这样做:

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

注意UTF-16。

不应该像这样工作:

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

请注意UTF-16。

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

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

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


顺便说一句,考虑将unicode字符串存储在单独的资源文件中。通常比较方便

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

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

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


顺便说一句,考虑将unicode字符串存储在单独的资源文件中。通常比较方便

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

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

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


javac-encoding utf-8 MyFile.java

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

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

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


javac-编码utf-8 MyFile.java

我不确定您的问题是什么。您可以在Java中使用类似“String word=”Бббббббббббб”这样的语句,而不会出现任何问题。我不确定您的问题是什么。您可以在Java中使用类似“String word=”的语句,而不会出现任何问题。我不是在尝试接受字符串ffom文件,而是在源代码中硬编码字符串。我不是在尝试接受字符串ffom文件,我试图在我的源代码中硬编码字符串。据我所知,现代系统不需要一种包含所有字符的字体。相反,如果某个字符没有以指定的字体显示,则将使用一种后退字体来显示需要它的字符。唯一的要求是系统上必须安装具有该字符的字体。除此之外,还有一种名为“最后手段”的字体,它包含所有字符的字形,但它只是一种通用字形,告诉您字符来自哪个Unicode块,因此,如果您没有安装任何合适的字体,就可以使用它。据我所知,现代系统不需要一种包含所有字符的字体。相反,如果某个字符没有以指定的字体显示,则将使用一种后退字体来显示需要它的字符。唯一的要求是系统上必须安装具有该字符的字体。否则,将有一种名为“Last Resort”的字体,其中包含所有字符的字形,但它只是一种通用字形,告诉您字符来自哪个Unicode块,因此,如果您没有安装任何合适的字体,则会使用该字形。我在Eclipse中将文件保存为UTF8,但在编译时没有指定编码,至少没有明确指定(如果项目中的任何文件被保存为UTF8,Eclipse是否会自动执行此操作?)。我的代码似乎工作正常。“编码utf-8”有多重要?@IZ如果您在命令行编译代码,这一点非常重要。在这一点上,所有内容都必须明确(包括是否调试代码、类路径、字符集等).Eclipse可能为您指定了它,这就是它工作的原因。我对Eclipse不太熟悉(但!),我通常使用Netbeans(已经习惯了)。但您可能可以在项目的属性中找到这些设置。我在Eclipse中将文件保存为UTF8,但在编译时没有指定编码,至少没有明确指定(Eclipse会自动完成吗