Re: [問題] code::Blocks中文輸出會變亂碼!!
看板C_and_CPP (C/C++)作者littleshan (我要加入劍道社!)時間16年前 (2009/03/27 17:25)推噓1(1推 0噓 1→)留言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
03/27 19:47, 1F
→
03/27 19:47, , 2F
03/27 19:47, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章