是否可以在VisualStudio2008中默认使用UTF-8编码
Is it possible to use UTF-8 encoding by default in Visual Studio 2008?
可能重复:
如何在Visual C++2008 中创建UTF-8字符串文字
是否可以强制Visual Studio在默认情况下对所有字符串使用UTF-8编码?
例如,有
wchar_t *txt="hello";
编码在utf8 中
这篇博客文章看起来很有前景:UTF-8字符串和Visual C++
大部分重要内容仍然存在,尽管有些图片已经损坏。简而言之:
第一步,您必须确保源文件是用字节顺序标记(BOM(UTF-8编码的。BOM是一个极其重要的东西,如果没有它,C++编译器将无法正常运行。
在Visual Studio 2008中,可以使用位于"文件"菜单中的"高级保存"命令直接从IDE中执行此操作。将弹出一个对话框。选择带有签名的UTF-8。
如果你编译并运行一个测试程序,[你不会得到预期的结果。]结果是,尽管你的文本是用UTF-8正确编码的,但出于兼容性的原因,C/C++运行时默认设置为"C"语言环境。此区域设置假定所有字符都是1字节。嗯。UTF-8不是这样,亲爱的!
您需要使用
setlocale
函数更改区域设置,以便输入输出流处理器正确解释字符串。在我们的例子中,系统使用的任何语言环境都很好,这是通过将"作为第二个参数来完成的。
为了严格起见,您必须检查setlocale的返回值,如果它返回0,则表示发生错误。在多语言应用程序中,您需要更精确地使用setlocale,明确地提供要使用的区域设置(例如,您可能希望应用程序在日语计算机上显示俄语文本(。
我不知道有什么好方法可以让它成为默认值。我确信这是不可能的。如果您正在为Unicode进行编译,Windows应用程序强烈更喜欢UTF-16。如果可能的话,你应该转换成那种格式。
否则,我能想到的最好的选择就是定义一个简单的宏(类似于Windows标头中定义的_T("string")
(,使用上面的逻辑将其转换为UTF-8。
- 如何在CPP的给定目录中列出UTF编码的文件名?
- 如何使用 C++将 ISO-2022-KR 编码转换为 UTF-8 编码?
- 如何使用utf-8编码在Qt5 WebEngineView中加载HTML页面?
- 如何在 c++ 中读取用 utf-8 编码的 java unicode 字节字符串
- QT 无法识别 UTF-8 编码,适用于其他所有位置
- 有关读取 UTF-8 编码文本时 Ifstream get() 方法行为的说明 (C++)
- 如何在Qt中通过QTcpSocket发送UTF-8编码的字符串
- 从键盘读取 UTF-8 编码的字符
- 如何从文件中写入的UTF-8编码的URDU字符串中获取单个字符
- C++ 字符串 UTF-8 编码
- 如何在 C# 中使用 Swig 包装 UTF-8 编码C++ std::strings
- 需要说明如何使用 C++ 在 Linux 上创建 utf-8 编码文件
- 如何将 UTF-8 编码的 std::string 转换为 UTF-16 std::string
- std::string 和 UTF-8 编码的 unicode
- 如何验证UTF-8编码的std::字符串
- 在空白字符上拆分 UTF-8 编码字符串,而无需了解 UTF-8 编码
- 使用ICU(ICU4C)读取UTF-8编码文件的缓冲区大小
- 如何使用Visual C++将UTF-8编码的数据存储到sqlite3中
- 如何检查文本文件是否使用UTF-8编码
- 为什么字符变得无用?libcurl c++ Utf-8编码的html;