跳至主要內容

阿拉伯语言中的字符顺序处理

muzzik大约 2 分钟文章CocosCocosCreator多语言

在阿拉伯语中,字符顺序是从右往左的,而且如果在其中插入非数字的字符,会导致语序错误...

替换字符后错误的语序

点击 Run 运行,F12 控制台查看结果

在上面的示例中,我们可以看到将 0 替换为 的输出结果导致语句顺序错误了,而在游戏看到的结果也是错误的

怎么解决?

点击 Run 运行,F12 控制台查看结果

经过我的尝试,发现使用 Unicode 字符 \u202b\u202c 包裹非阿拉伯语的字符即可正常替换

为什么可以这样做?

在 wiki 百科中,介绍了 U+202B 是从右到左嵌入,那么和我们的目标一致,而 U+202C 解释比较含糊,实际的作用是 终止嵌入或覆盖控制,也就是在嵌入非阿拉伯语字符结束后,我们需要使用 U+202C 来表示嵌入字符结束了,才能正常展示出来

阿拉伯语中的数字开头导致的语序错误

通常,你拿到的翻译结果中,需要数字开头展示的字符串在结果中往往会跑到左边(阿拉伯语从右边开头),如下

点击 Run 运行,F12 控制台查看结果

怎么解决?

我们只需要将开头的数字也使用 \u202b\u202c 包围即可

点击 Run 运行,F12 控制台查看结果

📣 觉得很赞?分享给你的朋友吧!