有没有人有过Unicodes的经验?
我正面临着波斯语unicodes的棘手问题
我有std::wstring s = (L"\u0634\u0646\u0628\u0647");
这是一个波斯语单词。当我调试它时,我看到底层的单词正是我想要的,但是反过来了。所以我研究并发现u2067是从右到左阅读字符串
注意:
我不能手动反转字符串,因为波斯语字符正在改变它们的形状而不管它们在字符串中的位置。
所以我在开头添加了2067,并得到了
std::wstring s = (L"\u2067\u0634\u0646\u0628\u0647");
。
但是现在底层的字符串是相同的,只是在字符串中添加一个正方形而不是反转。
有没有人体验过这些东西?请提出解决方案。谢谢!
答案 0 :(得分:4)
底层字符串将是相同的。您没有更改字节的顺序,这是在代码中写入的。但是,了解Unicode的渲染器应该采用这些字节并从右到左显示字符。这是一个视觉的东西。它与编码无关。从你的问题来看,你所期待的还不完全清楚。您可能正在调试器中查看字符串,并且调试器不支持Unicode的此功能。如果您尝试将字符串输出到正确的控制台,您应该按预期看到它。