如何解决在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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。