Имам следния код:
#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 и базата данни, за да знаете кодирането, което се използва в момента.