python中編碼問題小結

1.在寫python代碼的時候請在文件最開始加上

#!/usr/bin/env python
# -*- coding: utf-8 -*-

  並且如果在代碼中需要使用中文請使用u'需要的中文'這種形式。
2.問題:如何查看unicode編碼對應的中文。

str = '\u4e2d\u6587'
print str
print str.decode('unicode-escape')

  運行結果如下。可以看出中文被正確的打印了出來。
  這裏寫圖片描述
3.問題:如何查看一個字符對應的16進制數。
  ord函數可以將一個字符轉化爲對應的十進制,hex函數可以將對應的十進制轉化爲十六進制。

str = u'中'
print ord(str)
print hex(ord(str))

  運行結果如下。
  這裏寫圖片描述
4.問題:如何將一個十進制數轉化爲unicode對應的字符。

a = 20013
print unichr(a)

  運行結果如下
  這裏寫圖片描述
  附上一種騷操作

print str(hex(20013)).replace('0x', '\u').decode('unicode-escape')

  這裏寫圖片描述
5.decode和encode。
  字符串在Python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作爲中間編碼,即先將其他編碼的字符串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。比如s是gb2312的編碼方式,s.decode('gb2312')的意思是以gb2312的編碼解析s然後將其轉化爲unicode,lz之前也總是弄錯~_~。關於decode和encode可以參照python新手必碰到的問題—encode與decode,中文亂碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章