c++ - 从右到左隔离字符串。C++
问题描述
有人有 Unicode 方面的经验吗?
我正面临波斯语 unicode 的棘手问题。
我有std::wstring s = (L"\u0634\u0646\u0628\u0647");
一个波斯语单词。当我调试它时,我看到底层的词正是我想要的,但是反过来了。所以我研究并发现 u2067 是从右到左读取字符串的。
笔记:
我无法手动反转字符串,因为波斯语字符正在改变它们的形状,无论它们在字符串中的位置如何。
所以我在开头添加了 2067 int 并得到了
std::wstring s = (L"\u2067\u0634\u0646\u0628\u0647");
.
但是现在底层的字符串是一样的,只是在字符串的开头添加了一个正方形而不是反转。
有没有人有这东西的经验?请提出解决方案。谢谢!
解决方案
基础字符串将是相同的。你没有改变字节的顺序,这是写在代码中的。但是理解 Unicode 的渲染器应该获取这些字节并从右到左显示字符。那是视觉上的事情。它与编码无关。从您的问题来看,尚不完全清楚您还期望什么。可能是你在调试器中查看字符串,而调试器不支持Unicode的这个特性。如果您尝试将字符串输出到适当的控制台,您应该会按预期看到它。
推荐阅读
- php - 如何在循环 symfony 中运行迁移命令?
- java - LDAPS:简单绑定失败
- python - 为什么 tf.feature_column.input_layer 以重新排列的顺序返回我的特征值
- apache-spark - 为蒙特卡洛方法尝试 GCP 时出错
- azure - Azure 服务总线中每个实体的最大会话数
- php - 如何在 symfony 中创建一个附加用户的对象
- elasticsearch - Elasticsearch:查询无法返回正确的结果
- angular - 如何在angular4中为每个json数组使用
- microsoft-graph-api - 如何使用 Microsoft graph 获取匿名用户帐户的访问令牌?
- python - 使用 Unix Shell 脚本进行文件解析