Python中Unicode字符串


字符串还有一个编码问题。

ASCII编码,比如大写字母 A 的编码是65,小写字母 z 的编码是122。

GB2312编码,用来把中文编进去。

Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。

'ABC'在Python内部都是ASCII编码的。

Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:

print u'中文'
中文
 
  
注意:
 Unicode字符串除了多了一个 u 之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效:
转义:
 
  
u'中文\n日文\n韩文'
 
  
多行:
 
  
u'''第一行
第二行'''
 
  
raw+多行:
 
  
ur'''Python的Unicode字符串支持"中文",
"日文",
"韩文"等多种语言'''
 
  
 如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释
 
  
# -*- coding: utf-8 -*-



目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为... 并选择UTF-8格式保存。