打印

请教与探讨,汉字编码相关技术

[复制链接]
3238|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
古道热肠|  楼主 | 2007-12-22 11:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
过去及现在嵌入式系统汉字的运用大都采用GB2132汉字库,通讯协议中交换信息使用汉字内码,可快速完成字符点阵的获取与使用。
随着应用的深入,系统要求使用GB18030大字库,通讯协议中交换使用Unicode编码,要求完成字符点阵的获取,如何实现,大家说说看。
优点:GB18030大字库能显示8000多个汉字,不再有冷门汉字不能使用的尴尬.
Unicode编码是国际性统一编码,以其跨平台的优越性,将会成为未来的主流。

相关帖子

沙发
yewuyi| | 2007-12-22 11:21 | 只看该作者

UTF-8

使用特权

评论回复
板凳
gyt| | 2007-12-22 11:33 | 只看该作者

现在速度和内存都不成问题了

确实可以考虑用大字库

使用特权

评论回复
地板
兰天白云| | 2007-12-22 11:43 | 只看该作者

Unicode编码

能具体说说吗?

使用特权

评论回复
5
computer00| | 2007-12-22 12:17 | 只看该作者

俺这里有个GB转Unicode的小工具~~~

使用特权

评论回复
6
gyt| | 2007-12-22 13:36 | 只看该作者

谢谢00提供!

使用特权

评论回复
7
古道热肠|  楼主 | 2007-12-22 14:47 | 只看该作者

现在的需求是接收到Unicode编码

要提取点阵数据,而且要用大字库。这8000多汉字的字库以前也操作过,能取点阵,现在就差Unicode转成2字节编码和4字节编码这一环节了。
相关链接:https://bbs.21ic.com/upfiles/img/200712/2007122214435322.pdf

使用特权

评论回复
8
古道热肠|  楼主 | 2007-12-22 15:16 | 只看该作者

回“兰天白云”

现在通讯用的是2字节的Unicode ,比如0x4E,0x0A,0x6D,0x77,代表汉字“上海”二字,

使用特权

评论回复
9
古道热肠|  楼主 | 2007-12-22 15:18 | 只看该作者

转贴,新手学习了

问:什么是Unicode?
答:Unicode给每个字符提供了一个唯一的数字,不论是什么平台,不论是什么程序,不论什么语言。Unicode标准已经被这些工业界的领导们所采用,例如:Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase, Unisys和其它许多公司。最新的标准都需要Unicode,例如XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML等等,并且,Unicode是实现ISO/IEC 10646的正规方式。许多操作系统,所有最新的浏览器和许多其他产品都支持它。Unicode标准的出现和支持它工具的存在,是近来全球软件技术最重要的发展趋势。 

问:为什么使用Unicode?
答:基本上,计算机只是处理数字。它们指定一个数字,来储存字母或其他字符。在创造Unicode之前,有数百种指定这些数字的编码系统。没有一个编码可以包含足够的字符:例如,单单欧州共同体就需要好几种不同的编码来包括所有的语言。即使是单一种语言,例如英语,也没有哪一个编码可以适用于所有的字母,标点符号,和常用的技术符号。这些编码系统也会互相冲突。也就是说,两种编码可能使用相同的数字代表两个不同的字符,或使用不同的数字代表相同的字符。任何一台特定的计算机(特别是服务器)都需要支持许多不同的编码,但是,不论什么时候数据通过不同的编码或平台之间,那些数据总会有损坏的危险。 

问:举个例子吧。
答:比如,简体中文(GB)、繁体中文(BIG5)、日文中,“赵”都是一个字,但是编码不同。在不同的编码下,BIG5的赵是0xBBAF,而0xBBAF在GB里面就被显示为“化”,这就是乱码。而Unicode采用统一的编码,“赵”只有一个,不必管他在哪种文字里。 

问:Unicode的优点是什么?
答:举一个最明显的例子就是Windows 2000/XP以及微软Office2000及其后的产品。因为这些软件都是Unicode内核,因此,无论何种文字,都可以在上面正常显示,而且是同屏显示。以前,简体中文的Word文件拿到英文版打开就会是乱码,简体中文的程序在Windows英文版上运行会出现乱码,而现在一切都解决了。 

使用特权

评论回复
10
yewuyi| | 2007-12-22 16:54 | 只看该作者

Apple用的是UTF-8

使用特权

评论回复
11
mohanwei| | 2007-12-22 19:53 | 只看该作者

如果想在51里用,可能还要编译器支持

不然你printf("你好! ");出来的就是乱码了……

使用特权

评论回复
12
eraychen| | 2007-12-22 22:06 | 只看该作者

不过好像unicode和gb2312没什么具体联系

是否要从gb转换成unicode的要经过查表?就没有其他好办法了吗

使用特权

评论回复
13
平常人| | 2007-12-22 22:10 | 只看该作者

查表最简单,其他办法都没有查表简单而且占用存储器还多

不要舍近求远。

使用特权

评论回复
14
eraychen| | 2007-12-22 22:21 | 只看该作者

这么说查表算是最优的了

使用特权

评论回复
15
eraychen| | 2007-12-22 22:24 | 只看该作者

00兄,是否可以把那个工具做成不是网页型的,上班好用啊

使用特权

评论回复
16
sz_kd| | 2007-12-22 22:54 | 只看该作者

使用特权

评论回复
17
computer00| | 2007-12-23 00:55 | 只看该作者

自己把这个页面另存为单一文档不就行了?随时都能用。

使用特权

评论回复
18
samuelyu| | 2007-12-23 02:46 | 只看该作者

怎么记得 18030 有好几万的字哦;

使用特权

评论回复
19
computer00| | 2007-12-23 10:54 | 只看该作者

估计楼主说的是二级字库...

使用特权

评论回复
20
古道热肠|  楼主 | 2007-12-23 11:46 | 只看该作者

回samuelyu

是俺记错了,GB18030是全字库,不止8000个。但俺手头的8000多个汉字的字库也搞不清是什么标准。的确有不少冷门字可以用得起来。其中有些编码是4个内码的,有些是2个内码的,4字节的内码汉字肯定无法直接用Keil输入了,直接用键盘输入内码。
   经大家一说,看来只有查表法也许是比较可行了。
回00,一二级字库才3000多个汉字,有些情况往往不够用的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

284

主题

6411

帖子

16

粉丝