Re: [問題] code::Blocks中文輸出會變亂碼!!

看板C_and_CPP (C/C++)作者 (我要加入劍道社!)時間16年前 (2009/03/27 17:25), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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

03/27 19:47, , 1F
感謝大大提供,我是用記事本打開CPP把亂碼改掉 在compile
03/27 19:47, 1F

03/27 19:47, , 2F
麻煩點就是了^_^
03/27 19:47, 2F
文章代碼(AID): #19p9joL6 (C_and_CPP)
文章代碼(AID): #19p9joL6 (C_and_CPP)