无法在 VS C++ 中使用 unicode,尽管选项启用了它
Can't use unicode in VS C++, despite options enabling it
我在代码中不断收到此警告:
warning C4819: The file contains a character that cannot be represented in the current code page (0). Save the file in Unicode format to prevent data loss
我已经完成了这个问题中建议的操作,使用高级保存选项并在没有 BOM 的情况下以 unicode 保存,但这不起作用;我在项目属性中尝试了"使用 Unicode 字符集",但这也不起作用。为什么它不能处理 unicode?作为参考,我有以下行冲刺 unicode 字符:
sprintf(mac, "x02x60x8c%c%c%c", (num >> 16) & 0xff, (num >> 8) & 0xff, num & 0xff);
就文件而言,x8c
不是一个字符。 它是一系列 (ASCII( 字符,编译器将在编译时(即收到错误时(尝试将其解释为字符。
编译器将根据文件是否为 BOM 来记录文件是否采用 Unicode 编码。 由于您在没有 BOM 的情况下保存了它,因此它在本地代码页(即 Shift-JIS(中被解释。
维基百科告诉我,在Shift-JIS中,x8c
是双字节字符的第一个字节。 我怀疑下一个字节(x25
,这是'%'
的值(不是有效的第二个字节。 因此,编译器无法将x8c
映射到 Unicode 字符。
诊断消息具有误导性,因为它是在假设程序员通过将实际的 Unicode 代码点放入其源文件中而不将它们另存为 Unicode 文件而遇到此问题的情况下编写
相关文章:
- 编译时未启用intel oneApi CUDA支持
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- Win32编译器选项和内存分配
- C/C++预处理器是否可以检测一些编译器选项
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- OpenGL在启用深度测试时不会丢弃我的碎片
- 如何使用 GCC 编译指示启用选项 '-Werror'?
- 无法在 VS C++ 中使用 unicode,尽管选项启用了它
- 制作文件后启用cmake选项/标志
- 为什么libcurl需要"CURLOPT_NOSIGNAL"选项,启用后会有什么副作用
- 在启用 OpenCL 选项的情况下使用 Tesseract 时出现 malloc 错误
- Eclipse:如何启用编译选项,在C++中编译错误,OpenCL程序
- 在启用OpenCL选项的情况下使用Tesseract时出错
- 仅在 Vim 中为 .h 和 .cpp 文件启用某些插件和选项
- 启用-std=c++0x或-std=gnu++0x编译器选项
- 如何查看英特尔 ICC 编译器上启用了哪些编译选项
- 如何在Boost程序选项中启用其他选项而不使用变量
- QTCreator如何在使用行编辑时启用密码填充选项
- 在gdb中为linux启用memleak选项