1. 程式人生 > >Python3 編碼問題: 怎麼將Unicode轉中文,以及GBK亂碼ÖйúÉÙÊýÃñ×åÌØÉ«´åÕ¯

Python3 編碼問題: 怎麼將Unicode轉中文,以及GBK亂碼ÖйúÉÙÊýÃñ×åÌØÉ«´åÕ¯

原理:

如果***type(text) is bytes***,
那麼text.decode('unicode_escape')

*decode對應bytes*
如果type(text) is str
那麼text.encode(‘latin1’).decode(‘unicode_escape’)
*encode對應str*

1. 案例:

*

#coding=utf-8
import requests,re,json,traceback
from  bs4 import  BeautifulSoup

def qiushibaike():
    content = requests.get('http://baike.baidu.com/city/api/citylemmalist?type=0&cityId=360&offset=1&limit=60'
).content soup = BeautifulSoup(content, 'html.parser') print(soup.prettify()) #.decode("unicode_escape") #目前soup.prettify()為str new=soup.prettify().encode('latin-1').decode('unicode_escape') #.dencode('latin-1').encode('latin-1').decode('unicode_escape') print(new) if __name__=='__main__'
: qiushibaike()

2. 結果對比:

這裡寫圖片描述

案例2,\xe5\x8f\xa4\xe8\xbf\xb9編碼

\xe5\x8f\xa4\xe8\xbf\xb9編碼處理

userInputTag=["\xe5\x8f\xa4\xe8\xbf\xb9","\xe5\xbb\xba\xe7\xad\x91"]
print(userInputTag[0].encode('latin-1').decode('utf-8'))

結果:

古蹟

完成轉化

出現GBK無法編譯

另外爬取時,網站程式碼出現GBK無法編譯python3,如出現如下:

<h1
>
ÖйúÉÙÊýÃñ×åÌØÉ«´åÕ¯[6]</h1>

示例:

#coding=utf-8
import requests
#共有6頁,首頁為空不為6
for i in range(6):
    if i==0:
        url='http://www.tcmap.com.cn/list/zhongguoshaoshuminzutesecunzhai.html'

    else:
        url='http://www.tcmap.com.cn/list/zhongguoshaoshuminzutesecunzhai'+str(i)+'.html'
    response=requests.get(url)
    print(type(response))
   #如需成功編譯,在.TEXT下面增加#號部分 
    html=response.text   #.encode('latin-1').decode('GBK')
    print(html)

這裡寫圖片描述

檔案讀寫操作codecs.open

python 檔案讀寫時用open還是codecs.open
案例:當我們需要寫入到TXT中的過程中
代替這繁瑣的操作就是codecs.open,例如

import codecs
fw = codecs.open(‘test1.txt’,’a’,’utf-8’)
fw.write(line2)

不會報錯,說明寫入成功。這種方法可以指定一個編碼開啟檔案,使用這個方法開啟的檔案讀取返回的將是unicode。寫入時,如果引數 是unicode,則使用open()時指定的編碼進行編碼後寫入;如果是str,則先根據原始碼檔案宣告的字元編碼,解碼成unicode後再進行前述 操作。相對內建的open()來說,這個方法比較不容易在編碼上出現問題。

相關推薦

Python3 編碼問題 怎麼Unicode中文以及GBK亂碼ÖйúÉÙÊýÃñ×åÌØÉ«´åÕ¯

原理: 如果***type(text) is bytes***, 那麼text.decode('unicode_escape') 如果type(text) is str, 那麼text.encode(‘latin1’).deco

python3 把\u開頭的unicode中文把str形態的unicode中文

python3 把unicode轉中文,把str形態的unicode轉中文 今天用py3.5爬東西的時候,爬到的是json格式,裡面的中文還都是unicode的形式. 講道理的話只要直接輸出就可以了,類似這樣的 >>> print (

PHP Unicode編碼與解碼_Unicode中文_中文Unicode字元

今天使PHP開發用到了Unicode的編碼與解碼,將unicode轉為中文,再將中文轉Unicode這樣的操作是非常常見的,所以小編將這兩個unicode中文互轉函式給作為一個筆記儲存起來,非常的簡單,會用就行了。1:下面來看PHP Unicode編碼方法,將中文轉為Un

C++ Builder 源碼TTS 文字語音可以朗讀文字或者把文字轉為 wav 聲音文件

源碼 img 操作 sde lan 語音 skill http sta TTSDemo / TVictorTTS: 兼容 C++ Builder 2010 ~ C++ Builder 10 (CX) 版本 ? 包括 Win32 和 Win64 兩個版本。兼容的操作系統:W

Delphi中Unicode中文

copy char del let har str string nes ide function UnicodeToChinese(inputstr: string): string;var i: Integer; index: Integer; tem

插入排序一部分看成有序一部分無序無序的第一個數字與前面的交換需要臨時變數temp來儲存無序的第一個

package com.interview.datastructure; public class SelectSort { public static void sort(int[] a) { if (a != null) { for (int i = 1; i

用PHPUnicode 化為UTF-8

function unescape($str) { $str = rawurldecode($str); preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U", $str, $r); $ar = $r[0]; foreach(

java 中文Unicode 以及 Unicode中文

package com.sun;public class Snippet {    public static void main(String[] args) {        String cn = "你";&n

前端之路網頁內容圖片並且複製網頁內容並且優化體驗。(截圖外掛Clipboard.js 的使用)。

做專案遇到一個比較奇葩的需求,覺得很有意思,記錄下。方便以後回憶。 涉及框架(html2canvas.min.js   clipboard.mn.js): 直接連cdn <script src="https://cdn.bootcss.com/jquery/3.3

如何在vscode裡pxrem而且還得爽!

自從新版移動端IM介面改用rem適配,效果實在太棒了。所以,接下來的主要工作會將一些核心頁面,也從px向rem轉移。 然,一直用慣了VSCODE,再加上設計稿等諸多原因,如果真想一下子從rem上編碼著實還是很困難。因此,一般而言,都是先訂一個基準大小,最後根據這個大小進行轉

jmeter中文亂碼Unicode中文

data alt bean 再次 encoding rev address 設置 測試的 在測試的過程中傳入中文測試,亂碼問題 1、get請求傳入中文參數address:中國雲南省 request請求中已經正確顯示參數(可能跟我之前配置過有關系),如果沒有正確顯示,

canvas畫布儲存圖片avaScript圖片畫布用JavaScript畫布保持成圖片格式上傳阿里雲

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style>

avaScript圖片畫布用JavaScript畫布保持成圖片格式

使用JavaScript將圖片拷貝進畫布 要想將圖片放入畫布裡,我們使用canvas元素的drawImage方法: // Converts image to canvas; returns new canvas element function convertImageToCanvas(im

學會PDFExcel一鍵實現轉換

在工作中,有的時候偶爾會出現一些商業E-Mail的傳送,但是在傳送之前我們是需要將PDF文件中的資料內容轉換成Excel的格式,所以學會將PDF轉Excel的方法很重要,下面小編就帶給大家一個一鍵將PDF轉成Excel的好方法。 PDF轉Excel的簡單方法一:【複製貼上法】 詳細操作步驟: 首先我可以

命名更改小結下劃線駝峰或駝峰下劃線

1、下劃線轉駝峰 const toCamel = str =>str.replace(/([^_])(?:_+([^_]))/g, (_,p1, p2)=>p1+p2.toUpperCas

sqlite3 unicode中文

用pyspider爬資料,預設的sqlite3資料庫內都是中文顯示,可是安裝了datagrip之後發現全部變成unicode碼了。於是將資料匯出csv,技術朋友再次出手用python搞定了 大家都知道中文編碼坑比較多,這個記錄下來 #轉檔案還是用程式碼最

41歲阿里工程師35歲管理真的是必經之路嗎?

阿里妹導讀:墨玦,阿里巴巴 iDST 高階技術專家。博士畢業於北京郵電大學,計算機應用專業,目前主要從事語音技術工程化方面的研發。回顧在阿里的三年時光,他感慨良多,寫下了這篇總結,與大家共勉。

codewars解題筆記 —— 字串駝峰單詞首字母大寫

題目:Complete the method/function so that it converts dash/underscore delimited words into camel casing. The first word within the output s

python3.6學會兩行程式碼深刻理解列表

一碼友問我兩行程式碼如何執行的,看似挺簡單,但涉及的知識點還挺多,值得細細分析,所以和大家分享。這兩行程式碼為: a = [0, 1, 2, 3, 4, 5] a[0:3],a[5]=[[2,3,4,5],7] #重點介紹這句程式 執行完畢上面兩行程式之後,大家猜猜,a的結

解決URLencode編碼空格成+的問題

根據官方文件:1string urlencode(string $str)此函式便於將字串編碼並將其用於 URL 的請求部分,同時它還便於將變數傳遞給下一頁。返回字串,此字串中除了-_. 之外的所有非字母數字字元都將被替換成百分號(%)後跟兩位十六進位制數,空格則編碼為加號(