从右到左隔离字符串.C++

Right to left isolate string. C++

本文关键字:C++ 字符串 隔离 从右到左      更新时间:2023-10-16

有人有Unicode的经验吗?

我面临着波斯语Unicode的一个棘手问题。
我有一个std::wstring s = (L"u0634u0646u0628u0647");,这是一个波斯语单词。当我调试它时,我看到底层单词正是我想要的,但颠倒了。所以我研究发现 u2067 是从右到左读取字符串。
注意:

我无法手动反转字符串,因为波斯语字符无论在字符串中的位置如何,都会改变其形状。

所以我在开头添加了 2067 int 并得到了
std::wstring s = (L"u2067u0634u0646u0628u0647");.
但是现在底层的字符串是一样的,只是在开头加了一个正方形,如果字符串不反转。
有人有这方面的经验吗?请提出解决方案。谢谢!

基础字符串将是相同的。您尚未更改字节的顺序,该顺序就写在代码中。但是理解 Unicode 的渲染器应该获取这些字节并显示从右到左的字符。这是一个视觉上的东西。它与编码无关。从你的问题来看,你还不完全清楚你还期望什么。可能是您正在调试器中查看字符串,并且调试器不支持 Unicode 的此功能。如果您尝试将字符串输出到适当的控制台,您应该按预期看到它。