锟斤拷锟斤拷 - 经典Unicode乱码

37 views
Skip to first unread message

easthero

unread,
Dec 2, 2008, 1:29:09 AM12/2/08
to min...@googlegroups.com


 
 

Sent to you by easthero via Google Reader:

 
 

via Initiative by electronixtar on 11/30/08

锟斤拷是什么?我也是最近才搞明白的。

http://www.baidu.com/baidu?word=%EF%BF%BD%EF%BF%BD

http://www.google.com/search?hl=en&q=%E9%94%9F%E6%96%A4%E6%8B%B7

我考证了一下,这个乱码的原因来源相当经典。

Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACTER

那么U+FFFD的UTF-8编码出来,恰好是 '\xef\xbf\xbd'。

如果这个'\xef\xbf\xbd',重复多次,例如 '\xef\xbf\xbd\xef\xbf\xbd',然后放到GBK/CP936/GB2312/GB18030的环境中显示的话

一个汉字2个字节,最终的结果就是:锟斤拷 哈哈。。。

Python代码:

>>> u'\uFFFD'.encode('utf-8')*2
'\xef\xbf\xbd\xef\xbf\xbd'
>>>
>>> print u'\uFFFD'.encode('utf-8')*2
锟斤拷

例如这个招聘就非常经典:

单位性质: 外商独资企业 所属行业: 线缆
单位规模: 100 - 499人 注册资金: 1299
联 系 人: 锟斤拷锟斤拷 联系人职位: 锟斤拷锟斤拷
传  真: 021-69178632 联系电话:
电子信箱: xuan...@walsin.com
通信地址:
邮  编:
单位网址:
单位介绍: 台锟斤拷锟斤拷业锟斤拷台锟斤拷锟斤拷锟侥碉拷f锟斤拷锟斤拷锟斤拷锟?锟斤拷锟斤拷/锟斤拷锟斤拷
招聘职位:锟斤拷锟斤拷 人数:20人
发布日期: 2007-07-17
联系人: 锟斤拷锟斤拷

编码问题真是个TMD烦人的问题。例如:15.jpg

最后我在wikipedia上开了一个 锟斤拷 的页面。瓦咔咔。。瓦咔咔。。。


 
 

Things you can do from here:

 
 

cathayan

unread,
Dec 2, 2008, 1:45:43 AM12/2/08
to min...@googlegroups.com
牛。

2008/12/2 easthero <east...@gmail.com>:

> 最后我在wikipedia上开了一个 锟斤拷 的页面。瓦咔咔。。瓦咔咔。。。
>
>
>
>
> Things you can do from here:
>
> Subscribe to Initiative using Google Reader
> Get started using Google Reader to easily keep up with all your favorite
> sites
>
>
> >
>

--
cath...@gmail.com
http://blog.cathayan.org

patapon

unread,
Dec 2, 2008, 2:43:22 AM12/2/08
to min...@googlegroups.com
希望能稍微解释一下这个。
Unicode有些细节我以前看过,总是印象不深刻

2008/12/2 easthero <east...@gmail.com>

Pepsi

unread,
Dec 2, 2008, 7:17:33 AM12/2/08
to min...@googlegroups.com
据悉,该现象产生的原因是多方面的,一来是Microsoft、Sun等垄断公司对打广告投入大量资金,但是对编码 问题这种细节做得不够细致,二来是PM经常克扣程序员工资,导致程序员代码激情和质量下降。

-----Original Message-----
From: easthero


 
 

Sent to you by easthero via Google Reader:

 
 
via Initiative by electronixtar on 11/30/08

锟斤拷是什么?我也是最近才搞明白的。

http://www.baidu.com/baidu?word=%EF%BF%BD%EF%BF%BD

http://www.google.com/search?hl=en&q=%E9%94%9F%E6%96%A4%E6%8B%B7

我考证了一下,这个乱码的原因来源相当经典。

Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这 就是:U+FFFD REPLACEMENT CHARACTER

acg

unread,
Dec 2, 2008, 7:25:51 AM12/2/08
to Copy&Paste Exchange
实际上对应的是什么字呢?

Pepsi

unread,
Dec 2, 2008, 7:54:32 AM12/2/08
to min...@googlegroups.com
这样的汉字很少见吧。
哪个大牛知道?

-----Original Message-----
From: acg
> 实际上对应的是什么字呢?
> >
>

ts

unread,
Dec 2, 2008, 11:34:17 AM12/2/08
to Copy&Paste Exchange
实际上对应的就不是字,是M$为代表的一些老的文本编辑工具中为了识别unicode文件添加的两个/三个字节。

缩略名是BOM(Byte Order Mark)。http://en.wikipedia.org/wiki/Byte_Order_Mark

可恶的是SUN JDK的XML库,凡是XML文件前面有这个BOM,都会报出prolog非法字符错等等等等。

On Dec 2, 9:25 pm, acg <abg2...@gmail.com> wrote:
> 实际上对应的是什么字呢?

John Hax

unread,
Dec 2, 2008, 11:36:14 AM12/2/08
to min...@googlegroups.com
对应的是 REPLACEMENT CHARACTER 。

2008/12/2 acg <abg...@gmail.com>
实际上对应的是什么字呢?


John Hax

unread,
Dec 2, 2008, 11:37:21 AM12/2/08
to min...@googlegroups.com

 REPLACEMENT CHARACTER 不是 BOM 。

2008/12/3 ts <Tanner...@gmail.com>

ts

unread,
Dec 2, 2008, 11:38:08 AM12/2/08
to Copy&Paste Exchange
看花眼了囧,我说的是U+FEFF,以前花过半上午查这个问题。。。。。。

ts

unread,
Dec 2, 2008, 12:12:25 PM12/2/08
to Copy&Paste Exchange
GB2312,GBK完全被Unicode包容,应该没有不能转换为unicode的字符,
产生REPLACEMENT CHARACTER会不会是,常见的,输入法采用GBK大字符集,录入的文本却当成了GB2312来转换?


On Dec 3, 1:37 am, "John Hax" <john...@gmail.com> wrote:
> REPLACEMENT CHARACTER 不是 BOM 。
>

> 2008/12/3 ts <Tanner.Se...@gmail.com>

cathayan

unread,
Dec 2, 2008, 7:36:35 PM12/2/08
to min...@googlegroups.com
Wikipedia这一页好像说得挺明白的:

http://en.wikipedia.org/wiki/Replacement_character

还有实例

2008/12/3 ts <Tanner...@gmail.com>:

--
cath...@gmail.com
http://blog.cathayan.org

Reply all
Reply to author
Forward
0 new messages