各位用 Unicode 这么久了,难道没发现这么简单的一个问题么?

keyif 2006-11-18 05:01:55
Unicode 使用16位来表示一个字符,即是说最多表示65536个不同字符。
但是中国汉字超过10万个吧?怎么表示呢?问题简单么?:)
...全文
302 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
keyif 2006-12-01
  • 打赏
  • 举报
回复
unicode 被扩到 32bit 了么?
liuqiyc 2006-12-01
  • 打赏
  • 举报
回复
Unicode是32bits的,16bits是以前的标准
Unicode可以看成一张表,表上列出了各种文字

UTF-8,UTF-16是具体的编码方案,它们将表上的文字按一定的规则影射成数字值
UTF-8不是8bits的,UTF-16也不是16bits的
alvachien 2006-12-01
  • 打赏
  • 举报
回复
1. 中国汉字超过10W个,这个是不对的,汉字没这么多。
2. 你所谓的Unicode 是16位,是UTF-16的标准,这种标准下,的确有些支付是3 byte宽度的
3. 最常用的其实是UTF-8,一些西方字符是1byte的,这也是Unicode标准
high2003376320 2006-12-01
  • 打赏
  • 举报
回复
不太会用,学习
vcPlayer 2006-12-01
  • 打赏
  • 举报
回复
unicode即是统一编码。常用的是通常的宽字符/两个字节,也有部分用4字节的。前面在微软的网站上搜了一下,里面有篇文章讲的很好,LZ可以去看一看,可惜我忘了链接了:(。
王国凡 2006-11-18
  • 打赏
  • 举报
回复
>...但是中国汉字超过10万个吧?怎么表示呢?
-------------------------------------
计算机中只保存常用的汉字及字符 .
按GB2312-80(GB2312码即国标码)规定的一级常用汉字是3755个,二级汉字是3008个,后来推广的GBK国标扩展码包括汉字是除GB2312以外增加的14000多个汉字。
Xyray 2006-11-18
  • 打赏
  • 举报
回复
^_^ re 扩展到32位的utf了
artcpp 2006-11-18
  • 打赏
  • 举报
回复
楼主最关键的问题是:要那么多汉字有这个必要吗?
GBK汉字是国家标准,也许,有的汉字将来会消失的。
尤其是计算机时代。
所谓的七万多,是把所有的加起来。可是,真正用于交流的,又有多少呢?
脆弱的肠胃 2006-11-18
  • 打赏
  • 举报
回复
Unicode使用(特别在C程序设计语言环境里)“宽字符集”。「Unicode中的每个字符都是16位宽而不是8位宽。」在Unicode中,没有单单使用8位数值的意义存在。相比之下,在“双位组字符集”中我们仍然处理8位数值。有些位组自身定义字符,而某些位组则显示需要和另一个位组共同定义一个字符。
处理DBCS字符串非常杂乱,但是处理Unicode文字则像处理有秩序的文字。您也许会高兴地知道前128个Unicode字符(16位代码从0x0000到0x007F)就是ASCII字符,而接下来的128个Unicode字符(代码从0x0080到0x00FF)是ISO 8859-1对ASCII的扩展。Unicode中不同部分的字符都同样基于现有的标准。这是为了便于转换。希腊字母表使用从0x0370到0x03FF的代码,斯拉夫语使用从0x0400到0x04FF的代码,美国使用从0x0530到0x058F的代码,希伯来语使用从0x0590到0x05FF的代码。中国、日本和韩国的象形文字(总称为CJK)占用了从0x3000到0x9FFF的代码。Unicode的最大好处是这里只有一个字符集,没有一点含糊。

15.衍生标准
Unicode是一个标准。UTF-8是其概念上的子集,UTF-8是具体的编码标准。而UNICODE是所有想达到世界统一编码标准的标准。UTF-8标准就是Unicode(ISO10646)标准的一种变形方式,
UTF的全称是:Unicode/UCS Transformation Format,其实有两种UTF,一种是UTF-8,一种是UTF-16,
不过UTF-16使用较少,其对应关系如下:
在Unicode中编码为 0000 - 007F 的 UTF-8 中编码形式为: 0xxxxxxx
在Unicode中编码为 0080 - 07FF 的 UTF-8 中编码形式为: 110xxxxx 10xxxxxx
在Unicode中编码为 0000 - 007F 的 UTF-8 中编码形式为: 1110xxxx 10xxxxxx 10xxxxxx

utf-8是unicode的一个新的编码标准,其实unicode有过好几个标准.我们知道一直以来使用的unicode字符内码都是16位,它实际上还不能把全世界的所有字符编在一个平面系统,比如中国的藏文等小语种,所以utf-8扩展到了32位,也就是说理论在utf-8中可容纳二的三十二次方个字符. UNICODE的思想就是想把所有的字符统一编码,实现一个统一的标准.big5、gb都是独立的字符集,这也叫做远东字符集,把它拿到德文版的WINDOWS上可能将会引起字符编码的冲突....早期的WINDOWS默认的字符集是ANSI.notepad中输入的汉字是本地编码,但在NT/2000内部是可以直接支持UNICODE的。notepad.exe在WIN95和98中都是ANSI字符,在NT中则是UNICODE.ANSI和UNICODE可以方便的实现对应映射,也就是转换 ASCII是8位范围内的字符集,对于范围之外的字符如汉字它是无法表达的。unicode是16位范围内的字符集,对于不同地区的字符分区分配,unicode是多个IT巨头共同制定的字符编码标准。如果在unicode环境下比如WINDOWS NT上,一个字符占两字节16位,而在ANSI环境下如WINDOWS98下一个字符占一个字节8位.Unicode字符是16位宽,最多允许65,535字符,数据类型被称为WCHAR.
http://zhidao.baidu.com/question/7967174.html
keyif 2006-11-18
  • 打赏
  • 举报
回复
ok 就当你说的 "中日韩汉字全集的话,大概是 7 万多个" 他也大于 65536
如何表示?
artcpp 2006-11-18
  • 打赏
  • 举报
回复
真正常用的汉字字符集是GB2312,其含有的汉字个数是6073个。
如果GB2312无法满足需要的话,用GBK字符集:含21003个。
当然,如果中日韩汉字全集的话,大概是 7 万多个。
不知道楼主说的汉字10万个,是从哪里得到的数据?
BoXoft 2006-11-18
  • 打赏
  • 举报
回复
unicode用16位是个误解。
keyif 2006-11-18
  • 打赏
  • 举报
回复
满意答案即送上100分!

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧