当我进入
new String("<some arabic text>".getBytes(), "UTF-8");
尽管显示了它被粘贴的方式(进入eclipse编辑器),索引0包含字符串最右边的字符。
(另外,每个阿拉伯字母都是两个字节,第一个字节每个都是-40。这是否表示序列?)
我想知道java编译器是否在背景中识别eclipse编辑器是否会重新组织阿拉伯语文字?或者为什么调试器知道这是阿拉伯语,这意味着第一个被读取的字母是最右边的,因此分配了索引0。
答案 0 :(得分:4)
所有文本都以书写顺序存储,因此阿拉伯语中的第一个(最右边)字母应存储在索引0中。由显示字符串的软件决定文本是阿拉伯语并将其放置在右侧 - -left。
此外,您最好引用的代码行什么都不做,最坏的情况是它会破坏数据。它使用系统默认编码将给定的Unicode字符串编码为字节,可以是任何内容,然后假装结果字节代表UTF-8中的某些文本并对其进行解码。