python任意编码转utf8或者unicode

# encoding: utf-8
‘‘‘
Created on 2015年2月8日

@author: 张鹏程 [email protected]
@copyright: 版权所有, 尊重劳动成功, 转载与修改请注明作者
‘‘‘
import traceback

import chardet

def mytoutf8(s):
    return mytounicode(s).encode(‘utf-8‘)

def mytounicode(s):
    if type(s) == type(u‘‘):
#         print ‘1‘
        return s
    try:
#         print ‘2‘
        s = s.decode(‘utf-8‘)
    except:
        try:
#             print ‘3‘
            s = s.decode(‘gb18030‘)
        except:
            print ‘***Error: decode string({0})‘.format(repr(s))
            print traceback.print_exc()
            s = repr(s)
#     print ‘4‘
    return s

if __name__ == ‘__main__‘:
    # test 中国i love you
    # utf-8
    s = ur‘中国i love you‘
    print repr(s), s
    cc = [‘utf-8‘, ‘gb18030‘, ‘gbk‘]
    fn = [mytounicode, mytoutf8, ]
    for f in fn:
        for c in cc:
#             print ‘=‘ * 80
            print ‘‘‘{0:<20}({1:10}) = {2:<50}, {3}‘‘‘.format(f.__name__, c, repr(f(s.encode(c))), f(s.encode(c)))

时间: 2024-10-09 22:37:17

python任意编码转utf8或者unicode的相关文章

Python中的Unicode编码和UTF-8编码

下午看廖雪峰的Python2.7教程,看到 字符串和编码 一节,有一点感受,结合崔庆才的Python博客 ,把这种感受记录下来: ASCII码:是用一个字节(8bit, 0-255)中的127个字母表示大小写字母,数字和一些符号.主要用来表示现代英语和西欧语言. 所以处理中文就出现问题了,因为中文处理至少需要两个字节,所以中国制定了GB2312. 所以,各国制定了各国的标准.日本制定了Shift_JIS,韩国制定了Euc-kr...那么,乱码就来了. 为了统一,Unicode诞生了.统一码把所有

paip.utf-8,unicode编码的本质输出unicode文件原理 python

#别的语言,java php都是unicode,走十python不一样. #enddef #todo write to unicode encode fileHandle = open ( r"c:\fmtSmpEnRst.txt", 'w',encoding="UTF-16" ) #todox utf8 not decode...now  UTF-16是Unicode lines=file2list(f, encode="utf-16") 作者

Python中GBK, UTF-8和Unicode的编码问题

编码问题,一直是使用python2时的一块心病.几乎所有的控制台输入输出.IO操作和HTTP操作都会涉及如下的编码问题: UnicodeDecodeError:‘ascii’codec can’t decodebyte0xc4inposition10:ordinalnotinrange(128) 这究竟是是个什么东西?!有时稀里糊涂地用一坨encode(),decode()之类的函数让程序能跑对了,可是下次遇到非ASCII编码时又悲剧了. 那么Python 2.x中的字符串究竟是个什么呢? 基本

python 字符串编码 str和unicode 区别以及相互转化 decode(&#39;utf-8&#39;) encode(&#39;utf-8&#39;)

python 字符串编码 str和unicode 区别以及相互转化 decode('utf-8') encode('utf-8') 原文地址:https://www.cnblogs.com/zhaoyingjie/p/9133020.html

python中的字符串编码问题——2.理解ASCII码、ANSI码、Unicode编码、UTF-8编码

ASCII码:全名是American Standard Code for Information Interchange,ASCII码中,一个英文字母(不分大小写)占一个字节的空间,范围0x00~0x7f,即0-128. ANSI码:ANSI编码是一种对ASCII码的拓展.ANSI编码用0x00~0x7f 范围的1 个字节来表示 1 个英文字符,超出一个字节的 0x80~0xFFFF 范围来表示其他语言的其他字符.前126个与ASCII码相同,之后的字符全是某个国家语言的所有字符.容量2的16次

PYTHON编码处理-str与Unicode的区别

一篇关于str和Unicode的好文章 整理下python编码相关的内容 注意: 以下讨论为Python2.x版本, Py3k的待尝试 开始 用python处理中文时,读取文件或消息,http参数等等 一运行,发现乱码(字符串处理,读写文件,print) 然后,大多数人的做法是,调用encode/decode进行调试,并没有明确思考为何出现乱码 所以调试时最常出现的错误 错误1 Traceback (most recent call last): File "<stdin>"

更改python字符编码以便使用UTF-8的编码url路径

url编码分两种, 一种是unicode, 另一种是gb2312, 今天遇到的一个网站是要将字符编码按照gb2312来编码,用来得到一个先填写blanks后再返回页面的数据,废话少说,需要做的就是先查看你的python的编码是啥,默认是ascii, ? 1 2 3 import sys print sys.getdefaultencoding() # 'ascii' 直接附代码吧: ? 1 import urllib as com ? 1 2 3 4 5 6 7 8 9 10 11 12 13

python字符编码与解码 unicode,str

字符编码 计算机中的字符都是以特定的编码形式存放的,从最早的ascii到后来的Unicode以及UTF-8, 在python中, 字符串str也是是区分编码的,在各种编码的字符串之间,有一座桥梁,就是unicode类型. str, unicode str转到unicode需要解码,即decode:反之,unicode转到str需要编码,即encode: str              -- (decode) -->         unicode unicode     -- (encode)

关于Python文档读取UTF-8编码文件问题

近来接到一个小项目,读取目标文件中每一行url,并逐个请求url,拿到想要的数据. #-*- coding:utf-8 -*- class IpUrlManager(object): def __init__(self): self.newipurls = set() #self.oldipurls = set() def Is_has_ipurl(self): return len(self.newipurls)!=0 def get_ipurl(self): if len(self.newi