剛剛接觸MySQL ,想寫一個學生管理系統 ,但是在創建賬號這一功能處出現了一個我不知道的錯誤。
當我創建賬號時將輸入名字為中文時,VS反饋賬號創建失敗,但是將命令陳述句直接在MySQL中使用,創建成功。
原本我以為是代碼有錯誤,但是在多次嘗試后,我發現名字除了中文之外,使用英文和數字都可以創建成功。
網上找資料說,VS 默認字符集為 GBK,MySQL 默認字符集為 UTF-8,中間轉換會亂碼,于是我又查資料將
VS 的默認字符集改為 UTF-8 ,結果還是失敗。
請求各位大佬幫助!!!
sprintf_s(s,"INSERT INTO `student_info` (`id`, `password`,`name`,`type`) VALUES ('%s', '%s', '%s','student');"
,login_account, login_password, login_name);
const char* insert = s; // 呼叫MySQL函式需要的型別為 const char*
if (!mysql_query(login, insert))
{
cout << "\n\n\t\t" << "賬號創建成功" << endl;
cout << "\n\t\t" << insert << endl;
}
else
{
cout << "\n\n\t\t" << "創建失敗" << endl;
cout << "\n\t\t" << insert << endl;
}



uj5u.com熱心網友回復:
你需要把字串轉為utf8編碼,而不是把你的vs檔案轉為utf8轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/103064.html
標籤:工具平臺和程序庫
下一篇:String(const String& str)和 String& operator = (const String& str) 哪個才是賦值建構式?
