看板 C_and_CPP 關於我們 聯絡資訊
請問有沒有人有相關經驗,我繼承了CEdit生出了一個文字輸入框, 但是因為 "要配合整個專案,不能" 將Character Set 設為 Use Unicode Character Set 這樣就面臨不能輸入日文韓文的問題(我是用ctrl+c ctrl+V貼在輸入框 裡,一貼上馬上變問號,但是中文都很正常),原本以為只是不能顯示,但麻煩的是 CEdit好像會將辨識不出來的字全部轉為問號(?),所以就連想要讀取文字的碼來 處理也不行。像許功蓋這種5c字元都可以正常讀取不是就表示支援UNICODE嗎? 為什麼就是無法支援其他語系,字型的部份我試過 OEM_CHARSET DEFAULT_CHARSET SHIFTJIS_CHARSET(這時我只貼上日文) 讀取的API是: GetWindowTextW(hEdit, szBuf, 1024); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.96.186.76 ※ 編輯: worldxxi 來自: 140.96.186.76 (08/27 17:25)
adrianshum:你自己都說不是用 unicode 了, 那當然不在正在用的語系 08/27 17:45
adrianshum:的字就出問題了, 那個字不在當前語系, 它也不可能給你 08/27 17:45
adrianshum:拿到字去處理, 因為這個字真的 "不存在" 嘛, 你叫它生 08/27 17:46
adrianshum:什麼給你讀 08/27 17:46
worldxxi:那請問我要怎樣更改當前語系呢? 08/27 17:48
adrianshum:你改了, 又會變成中文讀不到耶... 08/27 17:48
buganini:如果有辦法 unicode就沒有存在價值了 08/27 17:54
worldxxi:那順便再問一下,為什麼在專案的其他地方有用DrawTextW 08/27 18:04
worldxxi:他就可以印出日文呢? 08/27 18:04
wowtiger:許功蓋 跟 Unicode 關係? 搞錯了吧 DrawTextW 是特殊案例 08/28 01:49
wowtiger:基本上 MFC 不 define 要 UCS2 等於是要 Win32 API 寫了 08/28 01:51
worldxxi:那大家遇到這種情況通常怎麼解決呢?自己寫Edit嗎? 08/28 08:56
ccbruce:要在big5下頭搞日文只有倚天碼啦, 不過, win32沒倚天碼說 08/28 09:19
ccbruce:用unicode補完計畫吧 08/28 09:20
VictorTom:如果這程式寫出來只有自己用才能考慮用uao.... 08/28 09:21
ccbruce:專案一開始想支援外國文字就不能用mbcs, 砍掉重練吧 08/28 09:21
VictorTom:要發布出去的東西不應該用uao的方式處理字碼問題.... 08/28 09:22
ccbruce:不過關於這東西我倒是想到一招, 如果可以保證自己負責的部 08/28 09:23
ccbruce:份對於專案其它部份是黑盒子的話, 只要把所有當成介面的方 08/28 09:23
ccbruce:法跟函數都用char,而不用TCHAR, 然後自己部份全用unicode 08/28 09:24
ccbruce:外面進來的東西再用MultiByteToWideChar之類的轉 08/28 09:25
ccbruce:應該可以 08/28 09:25
worldxxi:我也是有想過全部讀進來再轉換,可是我不知道怎樣讓使用 08/28 09:58
worldxxi:者輸入,應該說不知道怎樣擷取使用者輸入文字後送出來的 08/28 09:59
worldxxi:編碼,如果可以得到編碼,轉換後就可以用DrawTextW印出來 08/28 10:01