python tornado框架中的中文编码问题
2011-07-08 19:27
363 查看
使用工具:Aptana studio 2, pyDev。
内容:python,tornado框架。CMS(内容管理系统,简称后台)。
情况:在Aptana中运行,在保存含有中文的网页时,即使用nicedit控件,获取字符串,写入文件,相关截图如下:
代码:
但是,当我部署到windows 32环境中,使用command shell运行时,报错: UnicodeDecodeError( 命令行中默认使用的是 windows 系统的 gbk 编码, str 就是使用 gbk 编码的字符串,使用 utf-8 解码时部分字节值超出 utf-8 范围,系统错误 ),file.write()无法完成任务。
于是我显示加编码:
不知Aptana干了什么事?
相关研究如下:
http://www.iteye.com/topic/757508
1, 乱码,编码错误出现的原因:字符串 str 声明时编码为 a ,而输出(控制台显示或者写入文件,数据库等)时由于环境的不同,默认编码也不同。在不同的环境下, python 会根据各自的默认编码去解码字符串 a ,因此 出现乱码( str 对应的 a 编码的值正好都在 b 编码的取值范围内) 或者 编码错误(譬如: a 编码中有值 10000 ( 2 进制的形式),但是 b 编码的取值范围不包括10000 ,就会出现转换错误)
2, 如果变量直接声明为 Unicode 字符,那么在不同输出环境时, python 都能正常地转换为相应的字符串
3, 通过 u 符号声明的 Unicode 字符串在上述 3 种情况下都不出现乱码, 推荐使用
4, 原始字符串和普通字符串声明的字符串的默认编码跟系统环境相关, python 命令行中默认的是操作系统的编码如 windows 的gbk , pydev 或者 idle 中,字符串的默认编码跟文件头部声明的编码一致(如果文件头部没有声明,那么默认的是 ascii 编码)
感谢原作者desert3
内容:python,tornado框架。CMS(内容管理系统,简称后台)。
情况:在Aptana中运行,在保存含有中文的网页时,即使用nicedit控件,获取字符串,写入文件,相关截图如下:
代码:
file = open(fullFilePath,'w') file.write(content) file.close() #content为传入字符串这时候没有错误,正常保存。
但是,当我部署到windows 32环境中,使用command shell运行时,报错: UnicodeDecodeError( 命令行中默认使用的是 windows 系统的 gbk 编码, str 就是使用 gbk 编码的字符串,使用 utf-8 解码时部分字节值超出 utf-8 范围,系统错误 ),file.write()无法完成任务。
于是我显示加编码:
file = open(fullFilePath,'w') file.write(content.encode('utf8')) file.close()这时正常。
不知Aptana干了什么事?
相关研究如下:
http://www.iteye.com/topic/757508
1, 乱码,编码错误出现的原因:字符串 str 声明时编码为 a ,而输出(控制台显示或者写入文件,数据库等)时由于环境的不同,默认编码也不同。在不同的环境下, python 会根据各自的默认编码去解码字符串 a ,因此 出现乱码( str 对应的 a 编码的值正好都在 b 编码的取值范围内) 或者 编码错误(譬如: a 编码中有值 10000 ( 2 进制的形式),但是 b 编码的取值范围不包括10000 ,就会出现转换错误)
2, 如果变量直接声明为 Unicode 字符,那么在不同输出环境时, python 都能正常地转换为相应的字符串
3, 通过 u 符号声明的 Unicode 字符串在上述 3 种情况下都不出现乱码, 推荐使用
4, 原始字符串和普通字符串声明的字符串的默认编码跟系统环境相关, python 命令行中默认的是操作系统的编码如 windows 的gbk , pydev 或者 idle 中,字符串的默认编码跟文件头部声明的编码一致(如果文件头部没有声明,那么默认的是 ascii 编码)
感谢原作者desert3
相关文章推荐
- python中文编码老是出错问题…
- Python中文编码问题(字符串前面加'u')
- 浅谈Python2获取中文文件名的编码问题
- Python 中文编码问题小结
- Python中文编码问题
- 框架编码为gb2312的项目在传递参数中文无法提交的问题
- Python2.x 中文md5编码问题
- python中文编码问题小结
- jsp中框架页面请求中的中文编码问题
- python编码与mysql中文乱码问题的解决
- python json 序列化反序列化 和 中文编码问题
- python 读写Json的中文编码问题
- 简单解决Python文件中文编码问题
- 编码与python中文使用问题
- Python中使用中文及编码问题
- python基础系列教程——Python中的编码问题,中文乱码问题
- 黄聪:python访问抓取网页常用命令(保存图片到本地、模拟POST、GET、中文编码问题)
- [Python] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题
- python中文编码问题
- python爬虫获取编码时中文乱码问题