python 中文转码

最近在玩一些爬虫,python中文转码刚接触是一件麻烦的事(转换的原理省略)

一般来说有encode(‘gbk‘),edcode(‘utf8‘),decode(‘gbk‘),decode(‘utf8‘)可以解决很大一部问题

但是今天遇到了‘\\u6210\\u529f‘这种格式,上面的三板斧就搞不定了

经过万能的度娘,发现了第一个贴子,叹为观止

http://bbs.chinaunix.net/thread-3674073-1-1.html

代码如下

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
import sys 
def main():
    for line in sys.stdin:
        sys.stdout.write(re.sub(r‘\\u\w{4}‘,
            lambda e: unichr(int(e.group(0)[2:], 16)).encode(‘utf-8‘), 
            line))
if __name__ == ‘__main__‘:
    main()

接着又是万能的度娘,没错还是他,找到一个更方便快捷的方法

http://blog.csdn.net/garinwang/article/details/6329262

代码如下

str = str.decode(‘unicode_escape‘)
str = str.encode(‘gbk‘)

第一步将字符串解码为unicode,第二步将unicode码编码为gbk汉字码。

此种方法能够将整个字符串中的汉字全部编码。

打完收工!

时间: 2024-10-05 05:12:00

python 中文转码的相关文章

python 中文正则表达匹配

需求:由于某个n年前的工具的错误,在复制一批文件的时候产生了大量的"复件xxxxxxx""复件(2)XXXXX"等类似文件,由于目录结构深,文件多,预计在5000万个,但是有多少这种错误的文件不清楚,因此写个脚本遍历删除. #encoding=utf-8 #author: skybug #date: 2014-05-11 #function: 遍历指目录,删除中文开头的文件名的图片 import os,re cnt = 0 pattern = re.compile(

centos7 python 中文 “UnicodeDecodeError: 'ascii' codec can't decode byte...”解决方法

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128) 1. 开始以为是自己写的python有问题,但后来发现同样的代码在其它电脑上运行正常... 2. 按网上说的方法什么load(sys),或者加# -*- coding: utf-8 -*-的方式,虽说都知道是python2年代的东西.但就当病急乱投医了.结果依旧无效. 3. 怀疑CentOS7 的LAN

python中文注释报错问题

错误信息: SyntaxError: Non-ASCII character '\xe4' in file... 解决办法: 在文件第一行或第二行添加:# -*- coding: utf-8 -*- 参考:http://blog.csdn.net/chen861201/article/details/7706535 python中文注释报错问题,布布扣,bubuko.com

URL中文转码

  //Driver = Driver.Substring(0, Driver.Length - 1);//截取字符串                               Driver = Server.UrlEncode(Driver);//URL中文转码,Driver为中文                                 Response.Write("<script>window.open('http://.....:8075/WebReport/Rep

Python中文全攻略

Python中文全攻略[转] 这几天一直纠结月python的中文编码问题,发现一篇不错的文章,转过来留个念想. 原文链接:http://blog.csdn.net/mayflowers/archive/2007/04/18/1568852.aspx 1.        在Python中使用中文 在Python中有两种默认的字符串:str和unicode.在Python中一定要注意区分“Unicode字符串”和“unicode对象”的区别.后面所有的“unicode字符串”指的都是python里的

Python中文乱码问题

1:源代码 #!/usr/bin/env python name = raw_input('请输入您的姓名:') print 'Hello,', name 运行时出错: [email protected]:~/my_note/my_python$ python 5.py File "5.py", line 3 SyntaxError: Non-ASCII character '\xe8' in file 5.py on line 3, but no encoding declared;

JAVA编码(中文转码)问题总结

本章主要分析Java编码和解码的原理,以及中文转码存在的问题做个简单的总结 目录 1  编码基础知识 ISO-8859-1编码 GBK GB2312 UTF-8 2  WEB系统转换编码       原理 Servlet网络传输编码 Struts2 控制编码 Spring 控制编码 3 字符串转字节 4 字节转字符串 1 编码基础知识 ISO-8859-1编码 ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0

一个python游戏源码

#finalPyPong.py import pygame,sys class MyBallClass(pygame.sprite.Sprite): def __init__(self,image_file,speed,location=[0,0]): pygame.sprite.Sprite.__init__(self) self.image = pygame.image.load(image_file) self.rect = self.image.get_rect() self.rect.

cookie中文转码

//cookie中文转码 var GB2312UnicodeConverter = { //转码 ToUnicode: function(str) { //中文转unicode return escape(str).toLocaleLowerCase().replace(/%u/gi, '\\u'); }, ToGB2312: function(str) { //unicode转中文 return unescape(str.replace(/\\u/gi, '%u')); } };