作者littleshan (我要加入剑道社!)
看板C_and_CPP
标题Re: [问题] code::Blocks中文输出会变乱码!!
时间Fri Mar 27 17:25:03 2009
※ 引述《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
1F:推 idlekick:感谢大大提供,我是用记事本打开CPP把乱码改掉 在compile 03/27 19:47
2F:→ idlekick:麻烦点就是了^_^ 03/27 19:47