gpt4 book ai didi

C++ 以 utf 8 字符写入 mysql 数据库?

转载 作者:行者123 更新时间:2023-11-28 08:15:24 26 4
gpt4 key购买 nike

我想发送数据到Mysql数据库,代码如下:

#include "StdAfx.h"
#include <iostream>
#include "my_global.h"
#include "mysql.h"
#pragma comment(lib, "libmysql")
#pragma comment(lib, "mysqlclient")
using namespace std;

MYSQL *connection, mysql;
MYSQL_RES *result;
MYSQL_ROW row;
int query_state;

int main()
{mysql_init(&mysql);
//connection = mysql_real_connect(&mysql,"host","user","password","database",0,0,0);
connection = mysql_real_connect(&mysql,"localhost","testc++","mypassword","testc++",0,0,0);
if (connection == NULL)
cout << mysql_error(&mysql) << endl;
else
cout << "connection established" << endl;
mysql_query(connection, "CREATE TABLE writers(name VARCHAR(25))");

mysql_query(connection, "INSERT INTO writers VALUES('攻殻機動隊')");
mysql_query(connection, "INSERT INTO writers VALUES('ブルージェンダー')");
mysql_query(connection, "INSERT INTO writers VALUES('Honore de Balzac')");
mysql_query(connection, "INSERT INTO writers VALUES('Lion Feuchtwanger')");
mysql_query(connection, "INSERT INTO writers VALUES('Emile Zola')");
query_state = mysql_query(connection, "select user_count()");
if (query_state !=0) {
cout << mysql_error(connection) << endl;


mysql_close(connection);

cin.get();
// This code disconnects the mysql connection.
mysql_free_result(result);
mysql_close(connection);
return 1;
}

我遇到的问题是日文图标被保存为 ?????而不是buruーjienedaー我将如何解决这个问题?我正在使用 visual studio 2010。

最佳答案

你是不是把mysql字段中的字符编码设置为UTF8,还是latin1,不支持国际字符。

你可以这样设置字段编码:

“CREATE TABLE writers(name VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_unicode_ci)”


编辑 1

如果这不是解决方案,则可能是 visual studio 问题,可以这样解决:

wchar_t query_string = L"INSERT INTO writers VALUES('攻壳机动队')";

您需要使用 this one here 等转换器将“攻壳机动队”转换为 unicode 字符串

我选择了 UTF=8 的,但我无法知道这些是否正确或如何使用它们,恐怕你需要通过试错来找出哪个是正确的序列。

为了让您的生活更轻松,这里有一个链接 library这可能能够为您完成所有这些工作。

source is here

关于C++ 以 utf 8 字符写入 mysql 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7860216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com