[問題] VC++ 字元集"Unicode"下使用MySQL
開發平台(Platform): (Ex: Win10, Linux, ...)
win7(win10)
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VC++(2013)
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
MySQL API
問題(Question):
各位前輩大家好
之前小弟寫了一支程式
使用的字元集為"多位元組"
程式碼 http://codepad.org/aUdBuWV3
今天我想把字元集改為"Unicode"
結果發生了錯誤
無法將引數char轉換為'LPCWSTR'
我Google後發現
LPCWSTR = const wchar_t *
所以做了幾點修正
1:char改為wchar_t,雙引號前面加L
2:sprintf_s改為swprintf_s
3:strlen()改為wcslen()
4:增加 mysql_options(&myCont, MYSQL_SET_CHARSET_NAME, "utf8");
mysql_set_character_set(&myCont, "utf8");
修改後程式碼:http://codepad.org/IhFEG7RM
但是在使用mysql_real_connect()時發生了錯誤
函式說明:http://i.imgur.com/GY72hjm.jpg
請問這樣是不是要修改標頭檔?
(有稍微修改一下 結果問題好像越來越大洞...)
還是有其他方法能在Unicode下使用MySQL API ?
懇請各位前輩賜教
謝謝!
程式碼(Code):(請善用置底文網頁, 記得排版)
多位元組:http://codepad.org/aUdBuWV3
Unicode :http://codepad.org/IhFEG7RM
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.59.114
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1497607559.A.4EA.html
推
06/17 23:11, , 1F
06/17 23:11, 1F
→
06/17 23:11, , 2F
06/17 23:11, 2F
推
06/17 23:12, , 3F
06/17 23:12, 3F
→
06/17 23:13, , 4F
06/17 23:13, 4F
→
06/17 23:14, , 5F
06/17 23:14, 5F
→
06/17 23:15, , 6F
06/17 23:15, 6F
推
06/18 00:04, , 7F
06/18 00:04, 7F
推
06/18 06:33, , 8F
06/18 06:33, 8F
→
06/18 06:33, , 9F
06/18 06:33, 9F
→
06/18 06:33, , 10F
06/18 06:33, 10F
→
06/18 06:35, , 11F
06/18 06:35, 11F
→
06/18 06:35, , 12F
06/18 06:35, 12F
→
06/18 06:35, , 13F
06/18 06:35, 13F
→
06/18 06:36, , 14F
06/18 06:36, 14F
→
06/18 06:37, , 15F
06/18 06:37, 15F
→
06/18 06:37, , 16F
06/18 06:37, 16F
→
06/18 06:39, , 17F
06/18 06:39, 17F
→
06/18 06:39, , 18F
06/18 06:39, 18F
→
06/18 06:40, , 19F
06/18 06:40, 19F
→
06/18 06:40, , 20F
06/18 06:40, 20F
→
06/18 06:41, , 21F
06/18 06:41, 21F
→
06/18 06:41, , 22F
06/18 06:41, 22F
推
06/18 14:10, , 23F
06/18 14:10, 23F
→
06/18 14:10, , 24F
06/18 14:10, 24F
→
06/18 14:10, , 25F
06/18 14:10, 25F
→
06/18 14:11, , 26F
06/18 14:11, 26F
→
06/18 14:26, , 27F
06/18 14:26, 27F
推
06/18 16:16, , 28F
06/18 16:16, 28F
→
06/18 16:16, , 29F
06/18 16:16, 29F
推
06/18 16:18, , 30F
06/18 16:18, 30F
→
06/18 17:12, , 31F
06/18 17:12, 31F
推
06/18 21:03, , 32F
06/18 21:03, 32F
謝謝兩位前輩
我大概了解問題了
我會再去GOOGLE 嘗試看看!
非常謝謝兩位!
※ 編輯: chingyue (114.45.198.45), 06/19/2017 10:08:02
→
06/19 10:04, , 33F
06/19 10:04, 33F
→
06/19 10:05, , 34F
06/19 10:05, 34F
→
06/19 10:07, , 35F
06/19 10:07, 35F
→
06/19 10:07, , 36F
06/19 10:07, 36F
→
06/19 10:08, , 37F
06/19 10:08, 37F
推
06/19 12:17, , 38F
06/19 12:17, 38F
→
06/19 12:17, , 39F
06/19 12:17, 39F
→
06/19 12:17, , 40F
06/19 12:17, 40F
→
06/19 12:17, , 41F
06/19 12:17, 41F
→
06/19 12:17, , 42F
06/19 12:17, 42F
推
06/19 12:26, , 43F
06/19 12:26, 43F
→
06/19 12:26, , 44F
06/19 12:26, 44F
不好意思
小弟才疏學淺
今天有研究了一下那些編碼轉換
但是還是不太清楚,我等等會再去研究看看
我先嘗試前輩你說的使用TCHAR
要使用char在轉換過去
程式碼:http://codepad.org/yZ7vViUP
但是一樣在要連接MySQL的時候會發生問題
圖:http://i.imgur.com/m9yAgqm.jpg
所以我將要帶入的參數改為char
執行後卻發生存取違規
錯誤圖:http://i.imgur.com/fWtUYBW.jpg
推
06/19 14:38, , 45F
06/19 14:38, 45F
→
06/19 14:39, , 46F
06/19 14:39, 46F
→
06/19 14:40, , 47F
06/19 14:40, 47F
→
06/19 14:40, , 48F
06/19 14:40, 48F
→
06/19 14:48, , 49F
06/19 14:48, 49F
→
06/19 14:48, , 50F
06/19 14:48, 50F
→
06/19 14:49, , 51F
06/19 14:49, 51F
→
06/19 14:50, , 52F
06/19 14:50, 52F
→
06/19 14:50, , 53F
06/19 14:50, 53F
→
06/19 14:50, , 54F
06/19 14:50, 54F
→
06/19 14:51, , 55F
06/19 14:51, 55F
→
06/19 14:51, , 56F
06/19 14:51, 56F
小弟嘗試使用wchat_t,並在需要時轉成char
因為WideCharToMultiByte比較複雜,我可能要在研究一下才會使用
所以小弟先使用wcstombs來做轉換
執行時卻會出現 存取違規
錯誤圖:http://i.imgur.com/AFg9Mbs.jpg
執行程式碼:http://codepad.org/SE7aEBqz
請問我是轉換的位子不對,或者一開始變數就設定有錯誤嗎?
※ 編輯: chingyue (114.45.198.45), 06/19/2017 16:45:48
推
06/20 23:14, , 57F
06/20 23:14, 57F
→
06/20 23:15, , 58F
06/20 23:15, 58F
→
06/20 23:30, , 59F
06/20 23:30, 59F
→
06/20 23:30, , 60F
06/20 23:30, 60F
→
06/20 23:31, , 61F
06/20 23:31, 61F
→
06/20 23:31, , 62F
06/20 23:31, 62F
謝謝您
我現在對編碼有比較了解了
正在慢慢修改程式碼
※ 編輯: chingyue (1.160.7.218), 06/21/2017 15:07:07