pythonutf8转unicode
① python3中为什么在print之前要将utf8解码成unicode
因为data是bypes类型的数据,需要转码成字符串啊。decode是解码的意思,utf8是按照什么格式来解码,也就是说把二进制的data转码成utf8的字符串。
不转码直接打印出来的是bytes的。字符串前面有个b的。
② python中的u和unicode编码问题!!!!
#-*-coding:gbk-*-
importsys
reload(sys)
printsys.getdefaultencoding()
printu'中文'
printunicode('中文','gbk')
你运行下这个程序,就能看出来,python2默认是ascii,虽然你文件使用的gbk,但是不会影响默认编码。
print u'中文',这个是直接定义一个unicode字符串。
unicode('中文')这个是生成unicode对象,解释器会对内容使用默认编码进行解码,转换成unicode,默认的是ascii,所以报错,你指定gbk就可以了。
如果解决了您的问题请采纳!
如果未解决请继续追问
③ python 怎么把字符转换为unicode编码
实现代码如下:
a
=
'abce'#
print
type(a)b
=
a.decode("ascii")#
print
type(b)c
=
a.decode("ascii").encode("utf-8")#
print
type(c)
在python中进行编码转换都是通过unicode作为中间值实现的。所以要先decode成unicode字符,然后再使用encode转换成utf-8编码的str。可以把注释取消了,看下转换过程中的类型。
④ Python中中文字符串怎么处理
如果处理的字符串中出现中文表示的字符,要想不出错,就得转成unicode编码了。具体的方法有:
1、decode(),将其他边编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码;
2、encode(),将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码;
3、unicode(),同decode(),将其他编码的字符串转换成unicode编码,如unicode(str3, 'gb2312'),表示将gb2312编码的字符串str3转换成unicode编码。
转码的时候一定要先搞明白字符串str是什么编码,然后decode成unicode,最后再encode成其他编码。
另外,对一个unicode编码的字符串在进行解码会出错,所以在编码未知的情况下要先判断其编码方式是否为unicode,可以用isinstance(str, unicode)。
不仅是中文,以后处理含非ascii编码的字符串时,都可以遵循以下步骤:
1、确定源字符的编码格式,假设是utf8;
2、使用unicode()或decode()转换成unicode编码,如str1.decode('utf8'),或者unicode(str1, 'utf8');
3、把处理后字符串用encode()编码成指定格式。