Python中文问题

一开始学习Python的时候,根本就没有太在意文字的问题,但是当自己真正的编写相关的Python代码的时候便发现了问题,通过阅读网上的各种大牛的解决的方法,简单那的总结一下:

(1)首先,了解文字的编码方式:

1.、ASCII,想必大家非常的熟悉了吧,一个byte表示一个字符,一共可以表示256个字符(0-255)

2.、Unicode,两个标准,分别是:UCS-2 和 UCS-4,区别是一个是2个字节表示一个字符,另一个是4个字节表示一个字符。(UCS,它实际上就是一张表,对应表,简单的字符对应码字的一个表,简称通用字符集,但是具体到每个字符对应的码位怎么存储和表示就是UTF的事情了,下面将介绍各种UTF了。)

3、UTF-16,将字符的码位映射为16位长的码元序列,而且最初的UCS-2这张表上的码位就是16位长的码元序列,实现2字节存储一个字符,但是不兼容ASCII。

4、UTF-8,这是一个变长的码位映射机制,虽然UTF后边标的是8,它可以使用1到6个字节表示一个字符,因此是变长码。由于,其可以使用一个字节表示字符,因此兼容ASCII。而且,可以表示多个国家的语言,具体的码字转换规则太复杂,不谈。支持中文。

5、GBK,常用的汉字编码标准之一,由于使用双字节编码方式,与Unicode兼容,码位范围为8140-FEFE,共23940 个码位,收入汉字21003 个。支持中文。

(2)然后,回到Python中来:

1、Python中的字符串有两种,分别是unicode和str,实际上,str是经过上述某种方式进行编码之后的unicode字符串,有两种方法可以将其在两者之间转换,分别是encode和decode。其中unicodestr.encode('utf-8')是说将unicodestr字符串转换成utf-8编码的字符串,并且返回转换成功的字符串;而strstr.decode('utf-8')是说将utf-8编码的字符串strstr转换成unicode编码的字符串,并且返回转换成功的字符串。

2、.py程序模块编码声明方式:

#coding=utf-8

将上面一行代码,放在文件开头即可,当文件被解析的时候,该行代码便会告诉解析器该文件的编码方式是utf-8,然后,当使用print输出中文的时候便不再会出现乱码或者出错的情况了。当然,上述几种支持中文表示的编码方式都可以类似的使用以使程序支持中文。当然该行代码具有多种变形,有兴趣的可以Baidu或者Google奥。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值