当我进入
new String("<some arabic text>".getBytes(), "UTF-8");
尽管显示完全按照粘贴方式(粘贴到 eclipse 编辑器中),索引 0 包含字符串最右边的字符。
(另外,每个阿拉伯字母都是两个字节,第一个字节是-40。这是否表示顺序?)
我想知道 java 编译器是否在后台识别阿拉伯语,以及 eclipse 编辑器是否会重组阿拉伯语文字?或者为什么调试器知道这是阿拉伯语,这意味着第一个被读取的字母是最右边的字母,因此分配了一个索引 0。
最佳答案
所有文本均按书写顺序存储,因此阿拉伯语中的第一个(最右边)字母应存储在索引 0 中。显示字符串的软件可以识别该文本是阿拉伯语并将其从右到右排列-左。
此外,您引用的代码行充其量什么也不做,最坏的情况是它会破坏数据。它使用系统默认编码(可以是任何内容)将给定的 Unicode 字符串编码为字节,然后假装生成的字节代表 UTF-8 中的一些文本并对其进行解码。
关于java - Java 中从右到左的语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18124784/