问题讨论:程序 C/C++ Java GUI编程 ASP Php Shell Perl Web开发 软件工程 三大件 机箱 存储设备 光存储 音频设备 视频设备 外设 购机
asp php java C CGI .net vb delphi unix|linux sql Word Excel WPS OutLook Powerpoint Dreamweaver FPage/Golive CSS/HTML DOM/JS
热门词:流程图 excel 入侵检测 vss Windows 安全漏洞 QQ空间 事件编程 MFC

 程序设计交流 > C/C++ 

程序设计中的字符集处理问题

[2011-11-20 18:44:45] [来源: 百家电脑学院] [我要投稿]



相信大家平时编程中有很多的时候是需要去处理各种字符集和各种程序本地化的,大家也肯定被这个问题困扰了很久,甚至根本在编程的时候无从下手,我个人左思右想,耐用水平有限,目前也是没有什么好办法。不知道大家有何高见?

字符处理具体在工程中的应用有以下几个例子:(这里我们主要说中文的本地化和字符处理)
中分分词(中科院分词/libmmseg/CRF+)
国家化(gettext)

C/C++据我所知,目前语言本身对字符处理的支持很有限,char/wchat_t,所谓的窄/宽字符,C/C++库也给这两种字符提供了各种标准函数。对于微软,还提供了另外一系叫mbs的所谓的多字节字符串函数。但是我个人感觉在处理中文的时候都特别的别扭不好用,而且wchar_t还问题多多,在win的msc下,这个是2字节,在gcc下是4个字节,尽管gcc有一个参数可以调整为2字节。

各种语言的策略:
java        统一2字节
python    2种,一种是所谓的unicode字符,一种是c字符串
c#           类似java
qt            utf8(内部做了封装)
glib          utf8

C/C++如果我用wchar_t,那么2字节估计是肯定装不完中文字符的,所以只有用4字节的,那么这个对中英文混合的文本是一个大浪费。如果用utf8的char来做,那么处理起来又不方便,不能将char当作语义上的字符,而需要去做各种各样的utf8特征识别。

还有gbk/utf8系大家使用过程中有什么建议或经验?(我个人是对gbk深恶痛绝,坚决用utf8,尽管gbk可能在搞中文的时候有一些好处,但是那点好处现在可以忽略不计了)

总之,这个语言对中文的支持相当的别扭,不知道大家在这方面有什么好的经验和建议?望cu上的各位高人不吝赐教(想清楚再说,别又硝烟四起成了战场),同时也希望大家把自己在编码过程中遇到的各种字符处理和字符集方面的问题提出来,大家一起讨论,坚决把这个问题搞定,免得以后疑惑。

该篇文章发表于:百家学院 (http://www.9php.com),复制请保留此行.

·看过 程序设计中的字符集处理问题 文章的还看过:

·百家学院 | 最新评论·

评论内容:不能少于5个字,请自觉遵守互联网相关政策法规。

用户名: 验证码: 验证码,看不清楚?请点击刷新验证码