std::ostringstream oss;
std::string s="תז";
oss << "insert into t values(" << s << ");"
this->sql = oss.str();
rc = sqlite3_exec(c,this->sql.c_str(), callback, 0 , &zErrMsg);
this->sql.c_str()
包含UTF-8字符,在执行此行之后,如果插入的数据是unicode,则数据库中的此数据将被破坏(每个字符一个字节而不是两个字节)。
如何添加Unicode支持?
我想将תז
写入数据库,写入数据库的字节为:fa e6
需要编写的内容:d7 aa d7 96
感谢。
答案 0 :(得分:0)
UTF-8是一种可变长度编码。 ASCII字符每个字符使用一个字节;其他人使用2到4个字节。
SQLite永远不会更改字符串中的字节。
数据库包含字节fa e6
,因为它是原始字符串s
的内容。
您必须确保您的源代码文件以UTF-8编码,或者将字符串从其实际编码显式转换为UTF-8。