2007年04月10日 星期二 09:11
On 4/10/07, sunbaole <sun_able在kinca.cn> wrote: > 以前对UNICODE和UTF-8的关系比较模糊,现在浏览大家的说法,又犯迷糊了。 > 看书、看书,查资料,彻底弄懂它。 你可以理解unicode是统一的字符集,它可以表示所有已知的字符,包括中文等。而它只是一种内部的表示,真正要用到操作系统中去的只是它的某种编码形式。这些编码有各自的取值范围,如ascii是0-255使用一个字节,而gbk使用两个字节。因此从unicode到具体使用的某种编码需要进行相互的转换。而utf-8也只是其中一种编码,只不过它的取值范围与unicode相同。在内存中我们使用unicode,但要进行输出,如写文件,网络传输,就需要进行转换,通常使用utf-8。因为utf-8的字符集与unicode相同,而gb2312,gbk,gb18030要小于unicode,所以有时会存在编码转换出错的情况。与unicode取值范围相同的编码还有象utf16等。只不过utf-8是变长的,而utf16是定长的。 一个汉字使用gbk编码是两个字节,但使用utf-8编码是3个字节,转为unicode,一个汉字的长度就是1了。编码不同,长度计算也不同。 -- I like python! UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad My Blog: http://www.donews.net/limodou
2007年04月10日 星期二 09:35
±¾À´Ã÷°×ÁË£¬¸ølimodouһ˵£¬ÓÖÂÒÁË¡£ Õâ¾ä»°ÒªÁËÎÒµÄÃü£ºÒ»¸öºº×ֵij¤¶È¾ÍÊÇ1ÁË¡£ ¹ùµ¤ËµµÄ£º unicodeÊÇÒ»ÖÖ×Ö·ûµÄ±àÂ뷽ʽ£¬ËûÊDZ䳤µÄ¡£ ͨ¹ýÊ×ÂëºÍβÂëµÄ·¶Î§ÏµÍ³¾ÍÖªµÀÒ»¸ö±àÂëµÄ³¤¶ÈÁË¡£ ²»¶ÔÂ𣿣¿ -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070410/586fd936/attachment.html
2007年04月10日 星期二 09:47
unicode是一个字符集,它其实是用一个integer表示字符。所有人类文字里的字符,不管现在仍然在用的,还是曾经用过,现在已经不用的,每个字符都对应一个数字。 怎样在计算机内部将这个数字表示出来,这是一个编码问题。现在unicode的编码,最常用的是UTF8,此外还有UTF16,UTF32等等。UTF8表示,要表示一个字符,最少可能会用8位,相应的,UTF16表示,最少用16位,32表示用32位。 人类字符非常多,远远超过8位的限制,因此UTF8是一种变长的编码。具体的,看第一位,如果第一位为0,则UTF8兼容ASCII,如果第一位为1,则看第二位,如果第二位为零,则这个字符用两个字节表示,如果为1,则看第三位。第三位为零,则字符用三个字节表示,为一,则看第四位,以此类推。 UTF8,最多可以用六个字节表示一个字符。 但是绝对不要混淆UTF8/16/32的编码和UNICODE的字符集。UTF解码完成之后,还是一个数字,具体对应哪个字符,还是有UNICODE字符集判断。 On 4/9/07, jessinio smith <jessinio在gmail.com> wrote: > 本来明白了,给limodou一说,又乱了。 > > 这句话要了我的命:一个汉字的长度就是1了。 > > 郭丹说的: > unicode是一种字符的编码方式,他是变长的。 > 通过首码和尾码的范围系统就知道一个编码的长度了。 > > 不对吗?? > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to > python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to > python-chinese-request在lists.python.cn > Detail Info: > http://python.cn/mailman/listinfo/python-chinese >
2007年04月10日 星期二 09:55
ÕâЩÎÒ¶¼ÖªµÀ¡£ ÎÒÖ»ÊÇÏëÖªµÀÒ»¸öÎÄ×ÖÔÚUNICODE×Ö·û¼¯ÀïÊǶàÉÙλµÄ¡£ÊDz»ÊÇUNICODE×Ö·û¼¯±íʾһ¸öÎÄ×Ö¶¼ÓÃ4¸ö×Ö½ÚÊý£¬ÊDz»ÊDZ䳤µÄ£¬»òÕßÇ°ÃæÊÇ0¾ÍÊ¡ÂÔ£¨ÓÃ2λ±íʾ£©£¿£¿ -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070410/1760115f/attachment.html
2007年04月10日 星期二 09:56
Äã°×³Õѽ£¡£¡£¡£¡£¡£¡£¡ -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070410/5f067d75/attachment.htm
2007年04月10日 星期二 09:57
Ò»¸öºº×ֵij¤¶È¾ÍÊÇ1ÁË¡£ ÄãÓÃstrlen Ò»ÀàµÄº¯Êý£¬È·ÊµÊÇ£±£¬Èç¹ûÄãÓÃÊ®Áù½øÖƱà¼Æ÷¿´£®£®ËûÓɶà¸öÖµ×é³É£® ----- Original Message ----- From: jessinio smith To: python-chinese在lists.python.cn Sent: Tuesday, April 10, 2007 9:35 AM Subject: Re: [python-chinese]unicodeÊÇÁ½¸ö×Ö·ûµÄ£¬»¹ÊDZ䳤µÄ£¨Ë«×ֽڵı¶Êý£©£¿ ±¾À´Ã÷°×ÁË£¬¸ølimodouһ˵£¬ÓÖÂÒÁË¡£ Õâ¾ä»°ÒªÁËÎÒµÄÃü£ºÒ»¸öºº×ֵij¤¶È¾ÍÊÇ1ÁË¡£ ¹ùµ¤ËµµÄ£º unicodeÊÇÒ»ÖÖ×Ö·ûµÄ±àÂ뷽ʽ£¬ËûÊDZ䳤µÄ¡£ ͨ¹ýÊ×ÂëºÍβÂëµÄ·¶Î§ÏµÍ³¾ÍÖªµÀÒ»¸ö±àÂëµÄ³¤¶ÈÁË¡£ ²»¶ÔÂ𣿣¿ ------------------------------------------------------------------------------ _______________________________________________ python-chinese Post: send python-chinese在lists.python.cn Subscribe: send subscribe to python-chinese-request在lists.python.cn Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn Detail Info: http://python.cn/mailman/listinfo/python-chinese -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070410/5894f55e/attachment.html
2007年04月10日 星期二 09:59
我无语。 你什么都不知道!! On 4/9/07, jessinio smith <jessinio在gmail.com> wrote: > 这些我都知道。 > > 我只是想知道一个文字在UNICODE字符集里是多少位的。是不是UNICODE字符集表示一个文字都用4个字节数,是不是变长的,或者前面是0就省略(用2位表示)?? > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to > python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to > python-chinese-request在lists.python.cn > Detail Info: > http://python.cn/mailman/listinfo/python-chinese >
2007年04月10日 星期二 10:00
On 4/10/07, shhgs <shhgs.efhilt在gmail.com> wrote: > unicode是一个字符集,它其实是用一个integer表示字符。所有人类文字里的字符,不管现在仍然在用的,还是曾经用过,现在已经不用的,每个字符都对应一个数字。 我不大认同把unicode说成一种字符集.字符集是一个编码可表达的字符的集合,而unicode已经用4字节的编码一一表达了集合中的字符,所以它就是一种编码. unicode是一种编码 utf8也是一种编码 两种编码对应的字符集一样.二者之间存在一一对应的转换关系. -- with kind regards
2007年04月10日 星期二 10:01
±ð·Ï»°ÁË,ÌßÁËÏÈ....................... -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070410/ca021250/attachment.htm
2007年04月10日 星期二 10:07
对jessinio真有一种恨铁不成钢的感觉。 你根本就在问一个错误的问题。 unicode的字符就是字符,就是一个数据,比如日期。它在计算机里面是怎么表示的,跟它有几个字节完全是两码事。就像一个time stamp。你说它是几个字节的?如果是Unix系统,只是用一个双精度的浮点数表示。如果是MySQL的数据库,得用一个字符串表示。你说一个时间用几个字节表示? unicode的字符就是Integer。然后用各种编码方式把这个Integer表示出来。至于Unicode字符是用几个字节表示的。这是一个错误的问题。 On 4/9/07, Neo Chen <openunix在163.com> wrote: > > > 一个汉字的长度就是1了。 > > 你用strlen 一类的函数,确实是1,如果你用十六进制编辑器看..他由多个值组成. > > ----- Original Message ----- > From: jessinio smith > To: python-chinese在lists.python.cn > Sent: Tuesday, April 10, 2007 9:35 AM > Subject: Re: [python-chinese]unicode是两个字符的,还是变长的(双字节的倍数)? > > > 本来明白了,给limodou一说,又乱了。 > > 这句话要了我的命:一个汉字的长度就是1了。 > > 郭丹说的: > unicode是一种字符的编码方式,他是变长的。 > 通过首码和尾码的范围系统就知道一个编码的长度了。 > > 不对吗?? > > ________________________________ > > > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to > python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to > python-chinese-request在lists.python.cn > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > > > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to > python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to > python-chinese-request在lists.python.cn > Detail Info: > http://python.cn/mailman/listinfo/python-chinese >
2007年04月10日 星期二 10:09
这不是你认不认同的问题。这是事实。 On 4/9/07, ro <rosettas在gmail.com> wrote: > On 4/10/07, shhgs <shhgs.efhilt在gmail.com> wrote: > > unicode是一个字符集,它其实是用一个integer表示字符。所有人类文字里的字符,不管现在仍然在用的,还是曾经用过,现在已经不用的,每个字符都对应一个数字。 > > 我不大认同把unicode说成一种字符集.字符集是一个编码可表达的字符的集合,而unicode已经用4字节的编码一一表达了集合中的字符,所以它就是一种编码. > unicode是一种编码 > utf8也是一种编码 > 两种编码对应的字符集一样.二者之间存在一一对应的转换关系. > > -- > with kind regards > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese
2007年04月10日 星期二 10:12
> > 一个汉字的长度就是1了。 > > 你用strlen 一类的函数,确实是1,如果你用十六进制编辑器看..他由多个值组成. > 用16 进制编辑器看的时候,看的是编码后的结果。使用不同编码保存的文件看出来是不一样的。 我们这里讨论的东西可能根不同语言的实现也有关系,至少 python 的 unicode 对象不是字节流!! -- http://codeplayer.blogspot.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20070410/bc515318/attachment.html
2007年04月10日 星期二 10:13
Ò»´óÔç¾Í±»ÂîÁË¡£²»¹ýÎÞËùνÁË¡£ÄÜÖªµÀ´ð°¸£¬Âî¶à¼¸´ÎÒ²ÐС£ -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070410/fd7b41fd/attachment.html
2007年04月10日 星期二 10:32
¸ÅÄîÉϵÄÎÊÌ⣬Ҫ°ÑÒýÓúͱàÂë·Ö¿ª¡£ unicode¾ÍÊÇÒ»¸ö×Ö·û¼¯£¬ÊÇÒ»¸ö×Ö·û×é³ÉµÄ±í£¬ÊÇcharset¡£ ÎÒÃÇͨ³£ÓõÄuXXXXÖ»ÊǶԱíÖÐijһ×Ö·ûµÄÒ»¸öÒýÓ㬲»ÊÇ˵uXXXX¾ÍÊÇunicode£¬unicode¾ÍÊÇÄǸö±íµÄ³éÏóÒâÒ壬¶ø¸ÃÒýÓÃÖµÊÇÒ»¸öÊý¡£µ±È»Äã¿ÉÒÔ°ÑÄǸöÊý×÷ΪunicodeµÄÐÅÏ¢±£´æ£¬µ«³öÓÚ½ÚÊ¡¿Õ¼äµÄ¿¼ÂÇ£¬Í¨³£Òª¶Ô¸ÃÒýÓÃÖµÔÙ½øÐÐÒ»²ã°ü×°£¬ÄǾÍÊDZàÂë¡£ÏñGBKÊÇ×Ó¼¯Ê½±àÂ룬ÏñUtf-8ÊDZ䳤µÄ£¬¸ù¾Ý×Ö·ûʹÓÃƵÂÊÀ´±àÂ룬ƵÂʸߵÄÓöÌ×Ö½Ú£¬ÆµÂʵ͵ÄÓó¤×Ö½Ú£¬ÕâÑù´ÓÐÅÏ¢Â۵ĽǶÈÀ´Ëµ£¬¾Í±£Ö¤ÁËƵÂÊÉÏ´ó´ó½ÚÊ¡ÁË´æ´¢ºÍ´«ÊäµÄÊý¾ÝÁ¿¡£ ÔÚ07-4-10£¬ro <rosettas在gmail.com> дµÀ£º > > On 4/10/07, shhgs <shhgs.efhilt在gmail.com> wrote: > > > unicodeÊÇÒ»¸ö×Ö·û¼¯£¬ËüÆäʵÊÇÓÃÒ»¸öinteger±íʾ×Ö·û¡£ËùÓÐÈËÀàÎÄ×ÖÀïµÄ×Ö·û£¬²»¹ÜÏÖÔÚÈÔÈ»ÔÚÓõģ¬»¹ÊÇÔø¾Óùý£¬ÏÖÔÚÒѾ²»Óõģ¬Ã¿¸ö×Ö·û¶¼¶ÔÓ¦Ò»¸öÊý×Ö¡£ > > ÎÒ²»´óÈÏͬ°Ñunicode˵³ÉÒ»ÖÖ×Ö·û¼¯.×Ö·û¼¯ÊÇÒ»¸ö±àÂë¿É±í´ïµÄ×Ö·ûµÄ¼¯ºÏ > ,¶øunicodeÒѾÓÃ4×ֽڵıàÂëÒ»Ò»±í´ïÁ˼¯ºÏÖеÄ×Ö·û,ËùÒÔËü¾ÍÊÇÒ»ÖÖ±àÂë. > unicodeÊÇÒ»ÖÖ±àÂë > utf8Ò²ÊÇÒ»ÖÖ±àÂë > Á½ÖÖ±àÂë¶ÔÓ¦µÄ×Ö·û¼¯Ò»Ñù.¶þÕßÖ®¼ä´æÔÚÒ»Ò»¶ÔÓ¦µÄת»»¹Øϵ. > > -- > with kind regards > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070410/7374c345/attachment.html
2007年04月10日 星期二 10:37
On 4/10/07, ro <rosettas在gmail.com> wrote: > > On 4/10/07, shhgs <shhgs.efhilt在gmail.com> wrote: > > > unicode是一个字符集,它其实是用一个integer表示字符。所有人类文字里的字符,不管现在仍然在用的,还是曾经用过,现在已经不用的,每个字符都对应一个数字。 > > 我不大认同把unicode说成一种字符集.字符集是一个编码可表达的字符的集合 > ,而unicode已经用4字节的编码一一表达了集合中的字符,所以它就是一种编码. > unicode是一种编码 > utf8也是一种编码 > 两种编码对应的字符集一样.二者之间存在一一对应的转换关系. > > http://www.google.com/search?q=python+unicode 看完搜索结果前三篇再回来讨论。 -- simple is good http://brucewang.net skype: number5 -------------- 下一部分 -------------- 一个HTML附件被移除... URL: http://python.cn/pipermail/python-chinese/attachments/20070410/d1f44793/attachment.html
2007年04月10日 星期二 10:42
On 4/10/07, wentrue <guozhuwen在gmail.com> wrote: > 概念上的问题,要把引用和编码分开。 > unicode就是一个字符集,是一个字符组成的表,是charset。 > 我们通常用的uXXXX只是对表中某一字符的一个引用,不是说uXXXX就是unicode,unicode就是那个表的抽象意义,而该引用值是一个数。当然你可以把那个数作为unicode的信息保存,但出于节省空间的考虑,通常要对该引用值再进行一层包装,那就是编码。像GBK是子集式编码,像Utf-8是变长的,根据字符使用频率来编码,频率高的用短字节,频率低的用长字节,这样从信息论的角度来说,就保证了频率上大大节省了存储和传输的数据量。 建议不知道不要乱解释,先查了资料再说。utf-8变长是不错,但是没有说是按使用频率来编码的。 http://wiki.mambochina.net/index.php/UTF-8%E5%AD%97%E7%AC%A6%E9%9B%86%E5%9F%BA%E7%A1%80 建议仔细阅读。与频率毫无关系。 -- I like python! UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad My Blog: http://www.donews.net/limodou
2007年04月10日 星期二 11:03
On 4/9/07, 黄毅 <yi.codeplayer at gmail.com> wrote: > python 的 unicode 对象和 python 的 string 也完全不同,它不以某种特定的编码保存字符串,所以 unicode 对象也不能像string 那样当作字节流来用 什么是unicode对象?我个人认为,没有必要把unicode对象和字符串分开来对象。 字符串是一个抽象的概念。对于不同的需求,在字符串中,一个字符可以是一个字节,也可一个unicode字符。它们都是字符串。 在unicode出现之后,字符和字符串的概念有了双重含义。一个字节不一定是一个字符,反之亦然。字符应该理解为真实世界中的一个文字,比如英文的"P"和中文的"中"。 在网络中传输字符串的时候,操作系统只认识字节,并不知道它们代表的含义。所以需要把字符串编码(encode)成字节序列在进行传输,接收方必须再解码(decode)才能把"无意义"一堆字节还原成人可以看得懂的一堆字符,即一段文字。 -- GoogleTalk: qcxhome at gmail.com MSN: qcxhome at hotmail.com My Space: tkdchen.spaces.live.com BOINC: boinc.berkeley.edu 中国分布式计算总站: www.equn.com
2007年04月10日 星期二 11:16
ÎÒ»¹ÊÇÏÂÔØunicodeµÄÂë±í¿´Ò»ÏºÃÁË¡£Ê®¸öÈË˵£¬Ê®¸öÓÐ×Ô¼ºµÄ¼û½â¡£ -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070410/1b191694/attachment.htm
2007年04月10日 星期二 11:22
On 4/10/07, jessinio smith <jessinio at gmail.com> wrote: > 我还是下载unicode的码表看一下好了。十个人说,十个有自己的见解。 > 嗯。只不过阐述的方式不一样。你可以总结一下。 -- GoogleTalk: qcxhome at gmail.com MSN: qcxhome at hotmail.com My Space: tkdchen.spaces.live.com BOINC: boinc.berkeley.edu 中国分布式计算总站: www.equn.com
2007年04月10日 星期二 11:34
很久之前我翻译的一个: http://blog.csdn.net/inelm/archive/2004/11/29/197466.aspx 在 07-4-10,jessinio smith<jessinio在gmail.com> 写道: > 这些我都知道。 >
Zeuux © 2025
京ICP备05028076号