ALL,
我正在使用MSVC 2010作为我的项目和SQLite的最新代码。
根据SQLite文档,查询字符串应编码为UTF-8。
正如其他一些主题所示,我尝试使用u8“”前缀。
但是,我收到一条错误,“u8”无法识别:'u8':未声明的标识符
所以,现在有2个问题:
仅限u8 C ++ 11吗?
如何让我的项目识别u8前缀?
谢谢。
答案 0 :(得分:0)
u8
字符串前缀实际上是C ++ 11或更高版本。
但是,除非您的字符串文字实际上包含非拉丁字符U+0x0080
及更高字符,否则它没有任何区别。
答案 1 :(得分:0)
Visual C 2010似乎不支持这些前缀。您应该能够在文字中包含UTF-8字符串,因为它们不会违反以null结尾的字符串的规则。字符串函数可能有些奇怪,它们可以处理UTF-8字符串,但是它们会将它们解释为单字节序列而不是UTF-8字符,因此比较,大小写转换和赢得#39 ; t工作与预期相符。您需要更新版本的Visual Studio才能完全解决问题。
另外,检查#pragma execution_character_set("utf-8")
的效果。它只能在Visual Studio中以C ++形式提供,因此您可能必须将C源文件编译为C ++才能访问它。