看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《idlekick (發呆騎士kick)》之銘言: : 請問各位高手QAQ : 我現在使用Code::Blocks 8.02版編輯程式,如果程式中含有中文 : 在comilper後,執行程式,裡頭的中文全變成亂碼, : 請問這個要如何解決才可以正確顯示中文,感謝m(_ _)m : 我的作業系統是WinXP,我有使用ultraedit去轉編碼也沒用!! : 懇請各位高手們協助我,謝謝 這牽涉到兩個問題: 1. 你的 source code 使用什麼編碼方式? 2. 你如何把文字顯示出來? 這兩部份的編碼方式要相同,中文才不會變亂碼。 比如說,你的 source code 用 big5 編碼, 然後 command line 選用 cp950,這種情況是可以正確顯示中文的。 (當然,惱人的許功蓋問題要自行處理) (可以改用 utf-8,不過 Windows 的 console 在顯示 utf-8 是有點問題的) 如果你是呼叫 Windows API 來顯示中文,比如說 MessageBox, 那會有兩種情況: 1. 你的程式中沒有 #define UNICODE,那麼 MessageBox 會呼叫到 MessageBoxA,接受的是使用 native encoding 的字串,所以你 要把 source 存成 big5。 不過我非常不建議這種作法,big5 是個糟糕的東西。 2. 如果用了 #define UNICODE,那麼 MessageBox 會吃 UCS-2, 因此你要把 source 存成 UCS-2。VC 可以正確編譯 UCS-2 的 source, 但 gcc 似乎是沒辦法。 另一種解法是用 utf-8 存 source,然後輸出前轉成 UCS-2。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.151.2
idlekick:感謝大大提供,我是用記事本打開CPP把亂碼改掉 在compile 03/27 19:47
idlekick:麻煩點就是了^_^ 03/27 19:47