代码:
mysqlpp::Query acc_query = connection->query("SELECT * FROM accounts;");
以下代码产生:
_Gfirst = 0x00c67718 "从账户中选择 *;ээээ«««««««««юоюою"
就像在 Visual Studio 调试器中一样。它似乎导致我的查询失败并出现奇怪的结果。
有没有其他人遇到过?
最好在MySQL中使用 UTF-8编码。代码页是一个以 Windows 为中心的 pre-Unicode 概念。您使用它们而不是 Unicode 可能解释了您遇到问题的原因。虽然可以使 MySQL 以及 MySQL++ 与 Windows 样式的代码页一起工作,但在 2010 年你不应该这样做。
如果您使用Unicode,它可能是 UTF-16 编码(Windows 在 NT 衍生产品中的本机编码),这再次解释了很多。
在将所有字符串数据发送到 MySQL 之前将其转换为 UTF-8 格式,并将 MySQL 配置为在其表中使用 UTF-8 编码。