python字符串乱码
❶ python print中文乱码问题 win10 Python2
python2字符串编码的问题,如果要输出中文可以使用u前缀,这样就可以直接使用了
a=u'你好'
printa
这样就可以了
❷ python中文显示乱码,已经在开头有了coding: utf-8
乱码原因:
因为你的文件声明为 utf-8,并且也应该是用 utf-8 的编码保存的源文件。但是 windows 的本地默认编码是 cp936,也就是 gbk 编码,所以在控制台直接打印 utf-8 的字符串当然是乱码了。
解决方法:
py文件用记事本打开,另存为utf-8格式即可
❸ 【json.tool】关于python -m json.tool中文乱码问题的处理
python一行式局谈解析json怎么避指老免中文转化为unicode编码?
在以 json 为数据传输格式的 RESTful 接口非常流行。为调试这样的接口,一个常用的办法是使用 curl 命令:
curl http://xx.xx.xx.xx/some-restful-api
对于返回的 json 字符串,一般在服务端不加处理的情况下,都是没有任何 '\t' 和 '\n' 的。
为了方便查看,在 bash 上可以简单地对它进行格式化:
curl http://xx.xx.xx.xx/some-restful-api | python -m json.tool
当然这要求机器上安装了 python,其实也就是利用了 json.tool 这个程序。
然而有时候还有一个问题,就是若返回的 json 字符串中包含中文,那么这样打印出来之后,中唯腊升文会变成以 \u 开头的转义形式,从而让程序员无法直接观察到中文的内容,这并非是一个 bug,而是 json 本身的标准,它要求 json 的内容都是 ascii 编码的,标准的 json 编码器和解码器都会遵循这一点。
# vim /usr/lib64/python2.7/json/tool.py
# curl -s -X POST https://run.mocky.io/v3/e95f6c35-b3c8-43d9-b9ab-f5ce8c1054cf -H 'cache-control: no-cache' | python -m json.tool
python -m json.tool中文乱码问题
https://blog.csdn.net/twingao/article/details/105169997
python -m json.tool 中文乱码 Format JSON with python
https://www.cnblogs.com/ruiy/p/6525591.html
python -m json.tool to output Chinese
python -m json.tool to output Chinese
Saving utf-8 texts with json.mps as UTF8, not as \u escape sequence
https://stackoverflow.com/questions/18337407/saving-utf-8-texts-with-json-mps-as-utf8-not-as-u-escape-sequence
❹ python 如何将乱码转成汉字
1、python2与python3稍微有点区别
2、python2中默认的字符编码格式都是unicode,在字符串前加'u',表示unicode 编码
3、将unicode转换成中文,只需要用deconde解码就可以了
>>> u='欢迎'>>> e=u.encode()>>> eb'\xe6\xac\xa2\xe8\xbf\x8e'>>> e.decode()#python3中默认就是utf-8编码'欢迎'>>> e.decode('gbk')#如果解码为gbk就是乱码'娆四繋'
python2编码环境比较复杂,在这里不做详细说明
❺ python中文乱码解决
windows下的文件路径,cmd窗口等默认编码都是gbk
但在windows下编写python程序的时候,我们一般采用的编码是utf-8
二者不一致是导致乱码的根本原因!
在pycharm下,为了中文不乱码,那么需要注意一下几个方面:
一、每一个源程序文件头部,需要加上
#-*-coding:utf-8;-*-
这样就没有乱码了
❻ python response 中文乱码问题
获得response.text有如下类似的乱码:
解决方法有两种:
第一种:
apparent_encoding方法是requests库利用chardet对字节流编码进行了猜测。一般来说使用这种方法,大部分网页的中文乱码都会恢复。如果还是不行,那就试试第二种方法。
第二种:
从网页格式中获得网页内容的编码方式(一般content-type字段会出现在HTML的header的头几行)。
如果直接拿来用,会报错
所以需要给decode加上第二个参数,decode([encoding], [errors='strict']), 第二个参数设置为ignore,则会忽略非法字符。
这样就能获得正确的中文内容了。
练习网址 https://news.mydrivers.com/1/628/628585.htm
❼ python爬虫出现菱形问号乱码的解决方法
在windows下使用非idle的其他ide编辑器,会碰到这个问题。对抓取到的网页内容进行先解码再编码即可。
以requests为例:
r = r.content.decode('gbk').encode('utf-8')
出现编码问题时,
1.仔细分析错误的类型。
看是decode(解码)错误还是encode(转码)错误。
2.搞清自己处理的字符串是什么类型的。
一般看网页的charset,一般为gbk,gb2312或gb18030.其中包含字符的大小为gb2312 < gbk <gb18030。一般出现‘gbk’ codec can’t decode,是因为
(1)要处理的字符串本身不是gbk编码,但是你却以gbk编码去解码
比如,字符串本身是utf-8的,但是你却用gbk去解码utf-8的字符串,所以结果不用说,则必然出错。
(2)处理的字符的确是gbk的,但是其中夹杂的部分特殊字符,是gbk编码中所没有的
如果有些特殊字符是GB18030中有的,但是是gbk中没有的。
则用gbk去解码,去所不支持的字符,也比如会出错。
所以,此种情况,可以尝试用和当前编码(gbk)所兼容的但所包含字符更多的编码(gb18030)去解码,或许就可以了。
3.然后换用这种的字符编码去编码或解码。
详情链接:https://www.crifan.com/summary_python_unicodedecode_error_possible_reasons_and_solutions/
❽ python 为什么中文字符串在dict会乱码
Python在执行过程中,常常出现不能读取中文路径名,表现为读取的路径是空或者直接报错(WindowsError: [Error 2]);也有时候出现不能正常输出中文字符串,编译器报错为(KeyError),这是编码出现了问题。这个时候在字符串后面添加转码操作即可。
详见源码示例如下
【中文字符串】
[python] view plain
print '品牌id'.decode('utf-8')
print '\xe5\x93\x81\xe7\x89\x8cid'.decode('utf-8')
上面两行输出结果是一致的。
【中文路径读取文件】
[python] view plain
# 获取当前路径下的文件夹
import numpy as np
from os.path import exists, isdir, basename, join, splitext
from glob import glob
data_path = 'F:\\wfpdm\\My_Proc_Data_ZXTZ\\美国数据库\\ 自相\
关特征\\'.decode('utf-8')
cat_paths = glob(data_path + "*")
cat_paths.sort()
cats = [basename(cat_path) for cat_path in cat_paths]