python声明编码作用_Python源代码中的编码声明字符串的作用
原來以為Python編源代碼頭部的#encoding: utf8的字符串對(duì)于python的實(shí)際編碼解析是沒有影響的。
但是今天發(fā)現(xiàn)一個(gè)很好玩的問題。Mark一下。
當(dāng)python的代碼中存在類似u'中文'這樣的字符串的時(shí)候,假設(shè)是utf8編碼,本地保存在py文件中的時(shí)候,是按照u'\xe4\xb8\xad\xe6\x96\x87'這樣的實(shí)際本地編碼保存的。
如果編碼聲明字符串是#encoding: utf8。
那么在使用的時(shí)候沒有任何的影響。
但是如果編碼聲明字符串的時(shí)候使用#encoding: gbk
那么在執(zhí)行import module的時(shí)候,python會(huì)嘗試?yán)胓bk編碼去解析這個(gè)u'\xe4\xb8\xad\xe6\x96\x87',運(yùn)行的結(jié)果當(dāng)然會(huì)報(bào)錯(cuò)。
SyntaxError: 'gbk' codec can't decode bytes in position 2-3: invalid data (encode.py, line 2)
如果#encoding: utf8,那么這個(gè)字符串就會(huì)被解析成u'\u4e2d\u6587'。然后就可以像正常unicode字符串一樣使用了。
0
頂
0
踩
分享到:
2010-10-15 18:57
瀏覽 3535
評(píng)論
總結(jié)
以上是生活随笔為你收集整理的python声明编码作用_Python源代码中的编码声明字符串的作用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql优化说出九条_技术分享 | M
- 下一篇: python怎么导入本地文件_Pycha