代码之家  ›  专栏  ›  技术社区  ›  Eduard Rostomyan

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

  •  1
  • Eduard Rostomyan  · 技术社区  · 7 年前

    有没有人有过联通的经验?

    我正面临着波斯语单曲的一个难题。
    我有一个 std::wstring s = (L"\u0634\u0646\u0628\u0647"); 这是波斯语。当我调试它时,我看到底层的单词正是我想要的,但是相反。所以我研究发现,u2067是用来从右到左读弦的。
    音符:

    我不能手动反转字符串,因为波斯语字符改变了它们的形状,而不管它们在字符串中的位置如何。

    所以我在开头加了2067分
    std::wstring s = (L"\u2067\u0634\u0646\u0628\u0647"); .
    但现在基础字符串是相同的,只是在开头添加了一个正方形,如果字符串不是反转的话。
    有人对这种东西有经验吗?请提出解决方案。谢谢!

    1 回复  |  直到 7 年前
        1
  •  4
  •   Lightness Races in Orbit    7 年前

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