Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;MySQL无法连接到日文数据库名_C++_Mysql - Fatal编程技术网

C++ C++;MySQL无法连接到日文数据库名

C++ C++;MySQL无法连接到日文数据库名,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(!co

我有以下代码:

#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;
}
#包括
#包括
使用名称空间std;
#定义服务器“localhost”
#定义用户“根”
#定义密码
#定义数据库“日本語"
int main(){
MYSQL*连接;
connect=mysql_init(NULL);
如果(!连接){

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

  • .cpp文件的编码
  • 将DB常量打印为字节数组
  • 从MySQL数据库中检索数据库的名称(只需连接并检索所有数据库名称-我想您可以这样做)
  • 查看MySQL文档和数据库,了解当前使用的编码

您是否尝试传递utf-8字符串?您的意思是什么?您的意思是使用字符串数据库吗?我尝试过,但您需要调用DC.c_str(),因为mysql_real_connect需要const char*。此外,mysql数据库使用的是eucjpms模式,而不是utf-8,这可能很重要。无论您在数据库中使用哪种编码,都可以使用“定名"设置utf8编码和mysql将进行转换。但这里的问题是建立连接。尝试将servername、username和dbname中使用的宽字符串转换为utf-8。我尝试了您的建议。首先,我可以将DB名称输出到标准输出。有趣的是,我可以正确连接到mysql服务器,当我没有指定数据库名称时,但是,当我运行showtables时,我得到:information\u schema???mysql performance\u schema test