DBCS和Unicode编码的区别解析
DBCS 编码的字符拆分挺让人头大的,是像中文这种双字节字符,断开一个位置都搞错。Win32.pp
这篇文章就讲得蛮清楚,顺带把Unicode
的优势也一并对比了。像我是程序员
这类字符串,在 DBCS 里分分钟被截断成乱码,而 Unicode 直接一个码点一个字符,省心多了。
DBCS 的字符编码确实有点“老江湖”的味道,历史包袱重,还得自己去判断是单字节还是双字节。解析的时候像010203
这种一不留神就搞混。Unicode就比较“省心”,定长,每个字符两个字节,啥都不用猜,解析自然也少了坑。
你要是还在用Delphi
、VC++
这些老工具,DBCS 的坑你肯定踩过,什么GB2312
、GBK
和ANSI
字符集乱七八糟的。这篇文章里面的例子就挺有代表性,一看就懂。要注意,Unicode 不是万能的,老项目上不一定都能切过去,兼容性你得自己盯着点。
推荐你顺便看看下面这几篇文章:Unicode 字符讲得蛮实用;VC++下的 Unicode 编码应用适合老系统迁移;还有GBK 和 Unicode 的映射,对国标字符挺有。
如果你手头刚好有个老 Win32 项目,又碰上字符串解析不对的问题,强烈建议先看看这篇文章,理清思路之后再下手,少走不少弯路。
2.67MB
文件大小:
评论区