Re: [問題] C++/MFC 與 MySQL++ 亂碼問題
抱歉,試到現在還是不成功,再上來問一下大家
首先,先請各位幫我澄清一下我的觀念有沒有問題:
1.
Unicode 不等於 UTF-8,
Unicode 用 3 個位元,而 UTF-8 則用 1~4 個位元不等
2.
CString 為中性的,看 Project 的設定,
用 Unicode 的話就等同於 CStringW,否則等同 CStringA
3.
MySQL++ 用 std::string,
接到的資料是 std::string,query 吃的也是 std::string
4.
std::string 也是 ANSI,可以自由轉換 CStringA 沒問題
(這裡我比較不清楚..)
我在試的時候,以下三行是必加的
SET NAMES utf8 COLLATE utf8_unicode_ci
SET CHARACTER_SET_CLIENT=utf8
SET CHARACTER_SET_RESULTS=utf8
我嘗試過:
(1)
( i) std::string => CString
(ii) CString => CStringA => query
以上解決部分,但仍是有字碼無法顯示,或問號
好像在第一步轉成 CString 的時候就有問題了
(2)
( i) std::string => MB2WC(CP_ACP、CP_UTF8都試過) => w_char* => CString
(ii) CString => WC2MB(CP_ACP、CP_UTF8) => char* => CStringA
英文字OK,但他國字碼顯示不出、顯示問號,比 (1) 結果還慘
(3)
( i) std::string => CStringA => CA2W => CString
(ii) CString => CW2A => CStringA
結果同 (2)
更正確的來說,我的字串是用 CMapStringToString 存下來(這應該沒差吧?)
我試到快瘋了 O_Q
不知道是那邊有問題
還是觀念有錯 ..
在這邊跟各位請教了 m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.63.100.2
※ 編輯: seoker 來自: 210.63.100.2 (02/01 15:41)
推
02/01 15:41, , 1F
02/01 15:41, 1F
→
02/01 15:42, , 2F
02/01 15:42, 2F
→
02/01 15:42, , 3F
02/01 15:42, 3F
推
02/01 15:44, , 4F
02/01 15:44, 4F
→
02/01 15:46, , 5F
02/01 15:46, 5F
→
02/01 15:46, , 6F
02/01 15:46, 6F
→
02/01 15:46, , 7F
02/01 15:46, 7F
→
02/01 15:47, , 8F
02/01 15:47, 8F
推
02/01 15:48, , 9F
02/01 15:48, 9F
→
02/01 15:50, , 10F
02/01 15:50, 10F
→
02/01 15:50, , 11F
02/01 15:50, 11F
→
02/01 15:50, , 12F
02/01 15:50, 12F
→
02/01 15:51, , 13F
02/01 15:51, 13F
→
02/01 15:54, , 14F
02/01 15:54, 14F
推
02/01 15:54, , 15F
02/01 15:54, 15F
→
02/01 17:26, , 16F
02/01 17:26, 16F
→
02/01 17:26, , 17F
02/01 17:26, 17F
→
02/01 17:27, , 18F
02/01 17:27, 18F
→
02/01 17:27, , 19F
02/01 17:27, 19F
推
02/01 17:32, , 20F
02/01 17:32, 20F
→
02/01 19:08, , 21F
02/01 19:08, 21F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章