当前位置:首页 » 编程语言 » pythonunicode转中文

pythonunicode转中文

发布时间: 2022-11-22 19:04:37

python2 怎么将unicode编码转成中文

1、python2与python3稍微有点区别
2、python2中默认的字符编码格式都是unicode,在字符串前加'u',表示unicode 编码
3、将unicode转换成中文,只需要用deconde解码就可以了!

❷ python3.6从网页源码中抓取的unicode无法输出中文

importrequests
frombs4importBeautifulSoup
importchardet
defget_charset(byte_str):
charset=chardet.detect(byte_str)['encoding']
returncharset
r=requests.get('http://xiaorui.cc/2016/02/19/代码分析python-requests库中文编码问题/')
r.encoding=get_charset(r.content)
soup=BeautifulSoup(r.text,'lxml')
soup.text

乱码的原因主要是网页的字符集和你输出的字符集不一致造成的,让你的输出和采集到的字符集保持一致就可以了

我这里用requests

urllib库也是一样的

❸ python unicode编码

python unicode编码:

下面的代码创建了一个Unicode字符串,用UTF-8编码器将它编码,然后写入到一个文件中去,接着把数据从文件中读回来,解码成Unicode字符串对象,最后,打印出Unicode字符串,用以确认程序正确地运行。

在Linux中编写,在VIM中输入如下代码,保存为uniFile.py

#/home/xiaopeng/python/code/uniFile.py
'''
:Writes
aUnicodestringtoafileinutf-8andreadsitbackin
'''
CODEC='utf-8'编码方式
FILE='unicode.txt'要存的文件名
hello_out=u"Helloworld "创建了一个Unicode格式的字符串
bytes_out=hello_out.encode(CODEC)用UTF-8编码
f=open(FILE,'w')
f.write(bytes_out)写入指定文件中
f.close()
f=open(FILE,'r')
bytes_in=f.read()读取
f.close()
hello_in=bytes_in.decode(CODEC)解码
printhello_in打印

在终端中输入:python uniFile.py

结果打印出 Hello world

然后在python目录下会发现多了一个名为unicode.txt的文件,用cat命令查看一下,发现里面的内容和打印的结果一样.

把Unicode应用到实际中注意一下四点:

1程序中出现字符串时一定要加一个前缀u

2不要用str()函数,用Unicode()代替

3 不要用过时的string模块。如果传给它非ASCII码,它会把一切搞砸。

4 不到必须时不要在你的程序里编解码Unicode字符,只在你要写入文件或者数据库或者网络时,才调用encode()函数和decode()函数。

❹ Python json unicode转中文

importsys
reload(sys)
sys.setdefaultencoding("utf-8")

result=[[u'9.6',u'50'],1,True,u'1292052',[u'u72afu7f6a',u'u5267u60c5'],[u'u7f8eu56fd'],u'',u'1994-09-10',15,725531,u'9.6']

f=open('data.csv','w')

foriinresult:
iftype(i)islist:
forjini:
iftype(j)==intortype(j)==floatortype(j)==bool:
j=str(j)+','
else:
j=j.encode('gbk')+','
printj,
print>>f,j,
else:
iftype(i)==intortype(i)==floatortype(i)==bool:
i=str(i)+','
else:
i=i.encode('gbk')+','
printi,
print>>f,i,

f.close()

❺ Python 编码转换与中文处理

python 中的 unicode 是让人很困惑、比较难以理解的问题. 这篇文章 写的比较好, utf-8是 unicode的一种实现方式,unicode、gbk、gb2312是编码字符集.

Python 默认脚本文件都是 ANSCII 编码的,当文件 中有非 ANSCII 编码范围内的字符的时候就要使用" 编码指示 "来修正一个 mole 的定义中,如果.py文件中包含中文字符(严格的说是含有非anscii字符),则需要在第一行或第二行指定编码声明: # -*- coding=utf-8 -*- 或者 #coding=utf-8
其他的编码如:gbk、gb2312也可以;否则会出现:

先说一下python中的字符串类型,在python中有两种字符串类型,分别是 str 和 unicode ,他们都是basestring的派生类;

在str的文档中有这样的一句话:

也就是说在读取一个文件的内容,或者从网络上读取到内容时,保持的对象为str类型;如果想把一个str转换成特定编码类型,需要把str转为Unicode,然后从unicode转为特定的编码类型如:utf-8、gb2312等。

unicode 转为 gb2312,utf-8等,使用 encode(encoding)

utf-8,GBK转换为 unicode 使用 unicode(s,encoding) 或者 s.decode(encoding)

普通的 str 转为 unicode,

如果直接执行s.encode('gb2312')会发生什么?

这里会发生一个异常:Python 会自动的先将 s 解码为 unicode ,然后再编码成 gb2312。因为解码是python自动进行的,我们没有指明解码方式,python 就会使用 sys.defaultencoding 指明的方式来解码。很多情况下 sys.defaultencoding 是 ANSCII,如果 s 不是这个类型就会出错。
拿上面的情况来说,我的 sys.defaultencoding 是 anscii,而 s 的编码方式和文件的编码方式一致,是 utf8 的,所以出错了:

对于这种情况,我们有两种方法来改正错误:

s = '中文'
s.decode('utf-8').encode('gb2312') ```

import sys
reload(sys) # Python2.5 初始化后会删除 sys.setdefaultencoding 这个方法,我们需要重新载入
sys.setdefaultencoding('utf-8')
str = '中文'
str.encode('gb2312')

print open("Test.txt").read()

import codecs
print open("Test.txt").read().decode("utf-8")

Traceback (most recent call last):
File "ChineseTest.py", line 3, in <mole>
print open("Test.txt").read().decode("utf-8")
UnicodeEncodeError: 'gbk' codec can't encode character u'ufeff' in position 0: illegal multibyte sequence

import codecs
data = open("Test.txt").read()
if data[:3] == codecs.BOM_UTF8:
data = data[3:]
print data.decode("utf-8")

s = "中文"
print unicode(s, "utf-8")

Traceback (most recent call last):
File "ChineseTest.py", line 3, in <mole>
s = unicode(s, "utf-8")
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-1: invalid data

s = "中文"
print unicode(s, "gbk")

s = "中文"
print unicode(s, "cp936")

❻ python乱码unicode编码解决\xe7\xbb\x87\…转汉字

当我用respose.content 输出请求的内容时,发现中文全部变成了下面这样。。。。

❼ 怎么将python所有unicode转换成中文格式

中文格式就是utf8呗

In[1]:s=u"中国"

In[2]:s
Out[2]:u'u4e256fd'

In[3]:new=s.encode("utf8")

In[4]:printnew
中国

In[5]:new
Out[5]:'xe4xb8xadxe5x9bxbd'

In[6]:

如果解决了您的问题请采纳!
如果未解决请继续追问

❽ 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()编码成指定格式。

热点内容
adbandroid版本 发布:2025-01-16 13:53:14 浏览:387
直链云存储 发布:2025-01-16 13:19:30 浏览:726
电脑主机服务器多少钱 发布:2025-01-16 13:00:28 浏览:667
linuxoracle操作 发布:2025-01-16 12:40:50 浏览:47
河北存储服务价格 发布:2025-01-16 12:39:21 浏览:351
挂机服务器的搭建 发布:2025-01-16 12:34:07 浏览:417
安卓怎么删除信任凭证 发布:2025-01-16 12:22:06 浏览:338
代理编译 发布:2025-01-16 12:07:59 浏览:794
服务器为什么老是无响应 发布:2025-01-16 12:07:59 浏览:894
安卓怎么传软件到苹果 发布:2025-01-16 12:01:28 浏览:959