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]