在OSXXCode和WindowsVisual Studio上存储Unicode字符串的区别

问题描述

我有一个相当复杂的问题,但请尝试将其分解为一些我无法理解的基本知识。

最后,我需要从用户输入字符串中获取哈希值,在Mac和Windows上必须相同。在经历了各种方法失败之后,我仅从简单的picosha2.h哈希(char)开始。虽然ASCII范围的哈希值在两个平台上均相等,例如const char* cc = "ø";给出不同的结果。从将声明更改为unsigned时的错误猜测是,Xcode将"ø"视为const char[3],而Visual Studio将其视为const char[2]

另一个示例"書"在Xcode中给出了正确的Unicode字符数组大小4,而在Visual Studio中仍然只有2。

如果查看实际的内存内容,我会发现Xcode为c3 b8存储了"ø",它与UTF-8代码匹配,而Visual Studio显示了f8,这是该字母的Unicode代码点的值,这使我更加困惑(https://www.utf8-chartable.de)。

是否有机会使Visual Studio(在运行时)将字符串解释为UTF-8并以与Xcode相同的方式存储它们?

解决方法

您可以在Visual Studio中设置UTF-8。

Properties->C/C++->Command Line->Additional Options->add /utf-8

此外,您可以将文件保存为utf-8格式。

Tools->Customize->Commands->Menu bar: File->Add Command->File->Advanced Save Options

然后,保存文件

File->Advanced Save Options->select utf-8

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...