C++MySQL无法连接到日语数据库名称

C++ MySQL Cannot Connect to Japanese Database Name

本文关键字:数据库 日语 连接 C++MySQL      更新时间:2023-10-16

我有以下代码:

#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 << "Errorn";
        return 1;
    }
    connect = mysql_real_connect(connect, SERVER, USER, PASS, DB, 0, NULL, 0);
    if(!connect){
        cerr << "Errorn";
        return 1;
    }
    return 0;
}

mysql_real_connect导致显示错误消息。问题是DB是日语的。如果我用英语连接到数据库,我可以很好地连接。

我还尝试将DB=",然后将表指定为DB.table(即。日本語.単語)但当我试图从表中读取时,我收到了一个分段错误。

任何帮助都将不胜感激。

您可能知道这一点,但存在不同的UTF编码。我会检查以下几点:

  • .cpp文件的编码
  • 将DB常量打印为字节数组
  • 从MySQL数据库中检索数据库的名称(只需连接并检索所有数据库名称——我想你可以做到)。与(2)进行比较
  • 请查看MySQL文档和数据库,了解当前使用的编码