我有以下代码:
#include <iostream>
#include <mysql/mysql.h>
using namespace std;
#define SERVER "localhost"
#define USER "root"
#define PASS "password"
#define DB "日本語"
int main(){
MYSQL *connect;
connect = mysql_init(NULL);
if(!connect){
cerr << "Error\n";
return 1;
}
connect = mysql_real_connect(connect, SERVER, USER, PASS, DB, 0, NULL, 0);
if(!connect){
cerr << "Error\n";
return 1;
}
return 0;
}
mysql_real_connect 导致显示错误信息。问题是数据库是日文的。如果我连接到英文数据库,我可以很好地连接。
我还尝试输入 DB=""然后将表指定为 db.table(即日本语.单语),但是当我尝试从表中读取时收到段错误。
我们将不胜感激。
最佳答案
您可能知道,但存在不同的 UTF 编码。我会检查以下几点:
- .cpp 文件的编码。
- 将 DB 常量打印为字节数组。
- 从 MySQL 数据库中检索数据库的名称(只需连接并检索所有数据库名称——我想你可以做到)。与 (2) 比较。
- 检查 MySQL 文档和您的数据库以了解当前使用的编码。
关于C++ MySQL 无法连接到日语数据库名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20094540/