Python中文问题
来源:互联网 发布:ubuntu wireshark lua 编辑:程序博客网 时间:2024/05/16 16:06
以下皆为Python2.x中--------------------
1、str与unicode
s = '哈哈'#str对象u = u'哈哈'#unicode对象
Python系统内部表示字符串使用unicode对象,采用默认编码。
str对象,即展现出的字符串,经过了utf-8或gbk方式等编码。
Windows下命令行控制台使用gbk编码,所以在控制台中s以gbk格式编码,ss为unicode
IDLE中默认同样为gbk编码,所以s为gbk编码;很奇怪的是,ss同样为gbk编码……
2、encode与decode
u.encode('utf-8')将unicode对象u编码为str,参数为编码方式
s.decode('utf-8')将str对象s解码为unicode,参数为解码方式
s = '哈哈' # '\xb9\xfe\xb9\xfe'u = u'哈哈' # u'\u54c8\u54c8' #在IDLE下为'\xb9\xfe\xb9\xfe'ss = s.decode('gbk') # u'\u54c8\u54c8' #在IDLE下为u'\u54c8\u54c8'uu = u.encode('gbk') # '\xb9\xfe\xb9\xfe'
故而将gbk转为utf-8,可用str.decode('gbk').encode('utf-8')
3、Python使用中文
# coding=utf-8
此条指令用于指明该文件以utf-8格式编码,以utf-8格式解析可能存在的中文。同时,文件中的str对象都是utf-8格式编码。
FTP服务器不一定采用哪种编码方式,通过ftplib访问“高清”的电影时
path = "影视/电影/高清"ftp.cwd(path)#若服务器同样为utf-8,传递path参数没问题ftp.cwd(path.decode('utf-8').encode('gbk'))#若服务器为gbk,则需将path转为gbk格式当然,也可以用以下方式,本质是相同的,只不过path直接存储的unicode而已。这样,当源文件编码改变时不需改变代码。
path = u"影视/电影/高清"ftp.cwd(path.encode('gbk'))--------------------------------------------------
在IDLE或windows命令行中,可以不指定源文件coding并且直接使用
path = "影视/电影/高清"ftp.cwd(path)如上所述,IDLE和windows命令行默认为gbk,path参数同样为gbk,而服务器恰好也为gbk……
很多时候,采用默认编码可以执行,但自己指定源文件编码后却不可执行,都是因为与待读取文件、远程服务端格式不匹配造成的。
---------------------------------------------------
Python3.x中str对象同样为unicode,原生支持中文了……
- python的中文问题
- python的中文问题
- python中文问题[转载]
- python 中文问题
- python 中文问题
- Python中文问题研究
- python 中文编码 问题
- Python 中文编码问题
- python django 中文问题
- Python 中文 编码问题
- python中文乱码问题
- Python中文问题研究
- python中文编码问题
- python 中文编码问题
- Python中文问题研究
- python中文编码问题
- python中文注释问题
- Python打印中文问题
- #pragma comment
- 计算机的计量单位KMGTPEZY
- C++中的宏定义
- js弹框alert出现乱码
- c#中用默认浏览器打开页面
- Python中文问题
- IOS Table中Cell的重用reuse机制分析
- 完美解决PHP中文乱码问题
- linux预定义变量$@ $<
- Java转义字符对照表
- oracle 生成流水号
- PackageManagerService(四):上层调用
- C++ 存储多种类型的结构
- php 断点调试工具配置之二