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

标签 c++ mysql

我有以下代码:

#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/

相关文章:

php - 在 CakePHP 中将 id 从自动增量更改为 char 36

mysql - 使用巨大的 where 子句优化 SQL 查询

mysql - joomla上的sql查询

php - 单击更新链接后表格未更新

c++ - 从字符串中删除两个字符以获得唯一字符的可能性

c++ - 有没有办法打破getline?

sql - 计划的数据库设计

c++ - protobuf嵌入式消息最佳实践

c++ - C++ 中的运行时模板依赖

c++ - 在C/C++中写一个非打印字符的行为是什么?