Python的中文字符乱码

巴扎黑
发布: 2016-12-09 11:21:07
原创
1610 人浏览过

打算用Python解析一下网络日志文件。

必然地遇上了中文乱码的问题。

小弟以前学Java,用Python解决中文乱码的问题真不知道如何入手。

在Java下面调试通过的代码,放在Python环境下就给我闹脾气了。

 

费我九牛二虎之力,终于在一位Oschina大大的帮助下问题解决了。

Python编码的思路主要是:

1.字符串

2.Unicode

3.目标编码集 其中(CP936,GB2312,GBK,GB18030貌似可以互相直接转换,大部分的编码是一样的)

 

了解Python的系统编码的结构,先看下以下的一段代码:

import locale 
  
def p(f): 
    print '%s.%s(): %s' % (f.__module__, f.__name__, f()) 
  
# 返回当前系统所使用的默认字符编码 
p(sys.getdefaultencoding) 
  
# 返回用于转换Unicode文件名至系统文件名所使用的编码 
p(sys.getfilesystemencoding) 
  
# 获取默认的区域设置并返回元祖(语言, 编码) 
p(locale.getdefaultlocale) 
  
# 返回用户设定的文本数据编码 
# 文档提到this function only returns a guess 
p(locale.getpreferredencoding) 
  
# \xba\xba是'汉'的GBK编码 
# mbcs是不推荐使用的编码,这里仅作测试表明为什么不应该用 
print r"'\xba\xba'.decode('mbcs'):", repr('\xba\xba'.decode('mbcs')) 
  
#在笔者的Windows上的结果(区域设置为中文(简体, 中国)) 
#sys.getdefaultencoding(): gbk 
#sys.getfilesystemencoding(): mbcs 
#locale.getdefaultlocale(): ('zh_CN', 'cp936') 
#locale.getpreferredencoding(): cp936 
#'\xba\xba'.decode('mbcs'): u'\u6c49'
登录后复制


相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!