日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
有關(guān)Python中文問題進(jìn)行詳細(xì)說明

在講解Python中文問題之前,先說一下什么是Python,前一陣對Python產(chǎn)生了濃厚的興趣,誰知道跟中文問題這個老朋友又一次不期而遇,看來,在代碼中,Python中文的問題總是常常的困擾著我們的。。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供永仁網(wǎng)站建設(shè)、永仁做網(wǎng)站、永仁網(wǎng)站設(shè)計、永仁網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、永仁企業(yè)網(wǎng)站模板建站服務(wù),十年永仁做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

這也難怪,誰讓當(dāng)初發(fā)明計算機的不是我們中國人呢,否則,現(xiàn)在全世界的計算機都支持而且必須支持GBK,這樣。寫這樣文章的人就不會是我了,而是大洋彼岸的一個金發(fā)碧眼的程序員,而且標(biāo)題也相應(yīng)改為 “studying the english problem in '大蟒' ”。

還是面對現(xiàn)實問題吧。相對java而言,中文問題在Python中的表現(xiàn)更為激烈?!凹ち摇钡囊馑疾皇钦f更為嚴(yán)重或者說難于解決。只是 Python對于decode&encode錯誤的默認(rèn)處理方式為strict,也就是直接報錯,而java使用replace的方式來處理了,因此 java出現(xiàn)中文問題后會打印出很多"??"。

此外,Python的默認(rèn)的encoding是ASCII,而java的默認(rèn)encoding跟操作系統(tǒng)的 encoding是一致的。在這一點上,我覺得java更為合理,這樣對程序員更為友好,也減少了newbies 開始時的挫折感,是有利于語言的推廣的。

但是,Python也有它的道理,畢竟ASCII是***的全世界所有平臺都支持的字符集,而且問題始終是問題,始終會出現(xiàn)的,逃避它還不如早點面對它。好了,說了這么多,該說說Python中中文問題的癥狀了。在這之前,我們先要了解Python中有兩種字符串,分別是一般的字符串(每個字符用8 bits表示)和Unicode字符串(每個字符用一個或者多個字節(jié)表示)。

它們可以相互轉(zhuǎn)換,有著更為全面的描述,在此我就不再多說什么了。來看下面的代碼:

 
 
 
  1.  # -*- coding:gb2312 -*- #必須在***行或者第二行  
  2. print "-------------code 1----------------"  
  3. a = "中文a我愛你" 
  4. print a  
  5. print a.find("我")  
  6. b = a.replace("愛", "喜歡")  
  7. print b  
  8. print "--------------code 2----------------"  
  9. x = "中文a我愛你" 
  10. y = unicode(x, "gb2312")  
  11. print y.encode("gb2312")  
  12. print y.find(u"我")  
  13. z = y.replace(u"愛", u"喜歡")  
  14. print z.encode("gb2312")  
  15. print "---------------code 3----------------"  
  16. print y 

說是遇到非ASCII字符了,并讓我們參考pep-0263。PEP-0263(Python Enhancement Proposal)上面說得很清楚了,Python也意識到了國際化問題,并提出了解決方案。根據(jù)提案上面的要求,我們有如下代碼:

 
 
 
  1. -------------code 1----------------  
  2. 中文a我愛你  
  3. 5  
  4. 中文a我喜歡你  
  5. --------------code 2----------------  
  6. 中文a我愛你  
  7. 3  
  8. 中文a我喜歡你  
  9. ---------------code 3----------------  
  10. Traceback (most recent call last):  
  11.   File "G:\Downloads\eclipse\workspace\p\src\hello.py", line 16, in  
  12.     print y  
  13. UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) 

我們可以看到,通過引入Python中文問題聲明,我們可以正常地在使用中文了,而且在code 1和2中,控制臺也能正確的把中文打印出來。但是,很明顯,上面的代碼也反映出了不少的問題:
1、code 1 和 2在使用print時采用了不同的方式,1是直接print,而2在print之前先進(jìn)行編碼
2、code 1 和 2中在同樣的字符串查找同一個字符“我”,得出的結(jié)果不一樣(分別是5和3)
3、code 3 中直接打印unicode字符串 y時出現(xiàn)錯誤(這也是為什么code 2中要先進(jìn)行編碼的原因)

【編輯推薦】

  1. 有關(guān)Python系統(tǒng)文件進(jìn)行介紹指導(dǎo)
  2. 如何正確的使用Python函數(shù)
  3. 對Python 構(gòu)建工具進(jìn)行詳細(xì)介紹分析
  4. PythonAndroid淺析Python優(yōu)勢所在
  5. 如何使用Python模塊解析配置文件?

分享名稱:有關(guān)Python中文問題進(jìn)行詳細(xì)說明
本文來源:http://www.5511xx.com/article/djdcshh.html