遇到Python字符集问题,实在头疼,恳请各位出手相救

吐槽的达达仔 发布于 2013/05/09 11:49
阅读 1K+
收藏 0

我有一些日志文件,包含中文字符集:

w=骞冲畨淇濋櫓鍏徃瀹樻柟缃戠珯&骞冲畨閾惰淇$敤鍗′腑蹇?

 

我现在需要把这些字符集转换成中文。但是文本数据里面这些都是乱码。

我用Java的 new String(inputStr.getBytes("gbk"),"utf-8");可以正常接卸。

在Python里面却不知道怎么做了。非常头疼,恳请各位帮忙。

 

谢谢~~

加载中
0
娃娃哇
娃娃哇

codec error  是遇到编码错误。

在字符集转换过程中常常遇到,这是由于转换的字符中非法字符,导致无法转换。

s.decode('utf-8', ‘ignore').encode('gbk′)   这样就好了 就是忽略个别非法字符。

娃娃哇
娃娃哇
回复 @吐槽的达达仔 : 给个最佳答案啊...
吐槽的达达仔
吐槽的达达仔
多亏了ignore,成了~~
0
娃娃哇
娃娃哇

首先找到 文件读写函数

 f = open('c:/intimate.txt','r') # r 指示文件打开模式,即只读
 s1 = f.read()
 s3 = f.readlines() #读出所有内容  
 print s3.decode('UTF-8').encode('gbk')
 f.close(); 

然后是字符集转换相关函数

参考:

http://hi.baidu.com/dushm/item/29c7bc9475f357ba82d2952f

http://hi.baidu.com/yobin/item/85101ec2f71ce8350931c65d

吐槽的达达仔
吐槽的达达仔
假如我的输入方式的stdin这样的呢??
0
娃娃哇
娃娃哇

如果输入方式是stdin

import sys
# parse command line
if file_name_given:
    inf = open(file_name_given)  #有文件名
else:
    inf = sys.stdin   #stdin

参考:

http://stackoverflow.com/questions/1744989/read-from-file-or-stdin

吐槽的达达仔
吐槽的达达仔
泪流满面,成了!!!
吐槽的达达仔
吐槽的达达仔
我也是这样写的: print str.decode('UTF-8').encode('gbk') 但是解析出来的内容并不正确。 我用repr来查看,是UTF-8的格式 然后我 print str.decode('utf8') 显示codec error
返回顶部
顶部