1

代码:

mysqlpp::Query acc_query = connection->query("SELECT * FROM accounts;");

以下代码产生:

_Gfirst = 0x00c67718 "从账户中选择 *;ээээ«««««««««юоюою"

就像在 Visual Studio 调试器中一样。它似乎导致我的查询失败并出现奇怪的结果。

有没有其他人遇到过?

4

1 回答 1

1

最好在MySQL中使用 UTF-8编码。代码页是一个以 Windows 为中心的 pre-Unicode 概念。您使用它们而不是 Unicode 可能解释了您遇到问题的原因。虽然可以使 MySQL 以及 MySQL++ 与 Windows 样式的代码页一起工作,但在 2010 年你不应该这样做。

如果您使用Unicode,它可能是 UTF-16 编码(Windows 在 NT 衍生产品中的本机编码),这再次解释了很多。

在将所有字符串数据发送到 MySQL 之前将其转换为 UTF-8 格式,并将 MySQL 配置为在其表中使用 UTF-8 编码。

于 2010-09-27T18:20:02.493 回答