、
Beniardá
怎样变成相对应的
ascii
码呢
解决
import
unicodedata
s = u
"Marek Čech"
#(u
表示是
unicode
而非
ascii
码,不加报错!
)
line = unicodedata.normalize(
'NFKD'
,s).encode(
'ascii'
,
'ignore'
)
line
结果
Marek Cech
python 2.*
中文编码问题
问题要从文字的编码讲起。原本的英文编码只有
0~255(2
8
)
,刚好是
8
位
1
个字节。为了使计算机表示各种不同的语言,
1
个字节是大
大不够的,自然要进行扩充。中文的话有
GB
系列、
UTF-8
,那么,它们之间是什么关系呢?
Unicode
是一种编码方案,又称万国码,可见其包含之广。但是具体存储到计算机上,并不用这种编码,而是用自身默认的编码方式,
utf-8
是互联网上使用的最广的一种
Unicode
的实现方式。
UTF-8
或者
gbk
也可以进行解码
(decode)
还原为
Unicode
。
在
python
中
Unicode
是一类对象,表现为以
u
打头的,比如
u'
中文
'
,而
string
又是一类对象,是在具体编码方式下的实际存在计算
机上的字符串。比如
utf-8
编码下的
'
中文
'
和
gbk
编码下的汉字
“
中华
”
,并不相同。例如
设计
python
的几个函数
encode()
:编码
decode()
:解码
repr()
:返回一个可以用来表示对象的可打印的字串