/ / C ++ MySQL не може да се свърже с името на японската база данни - 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(!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 (т.е. 日本語. 語), но получих грешка в сегментирането, когато се опитах да прочета от таблицата.

Всяка помощ ще бъде оценена.

Отговори:

0 за отговор № 1

Вероятно знаете това, но съществува различно кодиране на UTF. Ще проверя следните точки:

  • Кодирането на вашия .cpp файл.
  • Отпечатване на константата на DB като масив от байт.
  • Извикайте името на базата данни от базата данни MySQL (просто свържете и изтеглете всички имена на db - предполагам, че можете да направите това). Сравнете с (2).
  • Проверете документацията на MySQL и базата данни, за да знаете кодирането, което се използва в момента.