c++ - 在 OSX (XCode) 和 Windows (Visual Studio) 上存储 Unicode 字符串的区别
问题描述
我有一个相当复杂的问题,但试着把它分解成一些我无法理解的基本问题。
最后,我需要从用户输入字符串中获取哈希值,这在 Mac 和 Windows 上必须相同。在各种方法都失败后,我开始使用散列 ( picosha2.h
) 一个简单的char
. 虽然两个平台上的 ASCII 范围哈希值相等,但例如const char* cc = "ø";
给出不同的结果。从将声明更改为时的错误猜测unsigned
是 Xcode 将其"ø"
视为 asconst char[3]
而 Visual Studio 将其视为const char[2]
.
另一个例子"書"
,它在 Xcode 中输出正确的 Unicode 字符数组大小为 4,但在 Visual Studio 中仍然只有 2。
如果我查看实际的内存内容,我会看到 Xcode 存储c3 b8
for "ø"
,它与 UTF-8 代码匹配,而 Visual Studio 显示f8
,这将是该字母的 Unicode 代码点的值,这让我更加困惑(https ://www.utf8-chartable.de)。
有没有机会让 Visual Studio 将(在运行时)字符串解释为 UTF-8 并以与 Xcode 相同的方式存储它们?
解决方案
推荐阅读
- android - 困境:使表格列未排序的最佳方法
- hazelcast - Hazelcast 4 春季会议
- r - optparse NA 默认值不会被命令行参数覆盖
- python - 蟒蛇 | Pandas DataFrame:高级切片/分组
- sql - 基于 SESSION_USER 的动态过滤器
- php - 使用带有 group_concat 的查询来循环值但显示最低价格
- sql-server - 从 Microsoft SQL-VarChar-Column 中获取所有不存在的数字
- php - 当购物车商品数量超过 Woocommerce 中的 24 件商品时,显示自定义运输选项
- php - 从多个数组中查找、保存和删除重复值
- html - 如何让音频播放器居中?