亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 10288 | 回復(fù): 1
打印 上一主題 下一主題

python轉(zhuǎn)碼 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2007-08-10 10:50 |只看該作者 |倒序?yàn)g覽
字符串內(nèi)碼的轉(zhuǎn)換,是開發(fā)中經(jīng)常遇到的問題。
在Java中,我們可以先對(duì)某個(gè)String調(diào)用getByte(),由結(jié)果生成新String的辦法來轉(zhuǎn)碼,也可以
用NIO包里面的Charset來實(shí)現(xiàn)
。
在Python中,可以對(duì)String調(diào)用decode和encode方法來實(shí)現(xiàn)轉(zhuǎn)碼。
比如,若要將某個(gè)String對(duì)象s從gbk內(nèi)碼轉(zhuǎn)換為UTF-8,可以如下操作
s.decode('gbk').encode('utf-8')
可是,在實(shí)際開發(fā)中,我發(fā)現(xiàn),這種辦法經(jīng)常會(huì)出現(xiàn)異常:
UnicodeDecodeError: 'gbk' codec can't decode bytes in position 30664-30665: illegal multibyte sequence
這是因?yàn)橛龅搅朔欠ㄗ址绕涫窃谀承┯肅/C++編寫的程序中,全角空格往往有多種不同的實(shí)現(xiàn)方式,比如\xa3\xa0,或者\(yùn)xa4\x57,這些字符,看起來都是全角空格,但它們并不是“合法”的全角空格(真正的全角空格是\xa1\xa1),因此在轉(zhuǎn)碼的過程中出現(xiàn)了異常。
這樣的問題很讓人頭疼,因?yàn)橹灰址谐霈F(xiàn)了一個(gè)非法字符,整個(gè)字符串——有時(shí)候,就是整篇文章——就都無法轉(zhuǎn)碼。
幸運(yùn)的是,tiny找到了完美的解決辦法(我因此被批評(píng)看文檔不仔細(xì),汗啊……)
s.decode('gbk', 'ignore').encode('utf-8')
因?yàn)閐ecode的函數(shù)原型是decode([encoding], [errors='strict']),可以用第二個(gè)參數(shù)控制錯(cuò)誤處理的策略,默認(rèn)的參數(shù)就是strict,代表遇到非法字符時(shí)拋出異常;
如果設(shè)置為ignore,則會(huì)忽略非法字符;
如果設(shè)置為replace,則會(huì)用?取代非法字符;
如果設(shè)置為xmlcharrefreplace,則使用XML的字符引用。


本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/13255/showart_357281.html

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2011-10-26 20:22 |只看該作者
這個(gè)需要頂
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP