當前位置:首頁 » 編程語言 » pythonutf8亂碼

pythonutf8亂碼

發布時間: 2022-10-21 10:17:27

『壹』 python中文亂碼解決

windows下的文件路徑,cmd窗口等默認編碼都是gbk
但在windows下編寫python程序的時候,我們一般採用的編碼是utf-8
二者不一致是導致亂碼的根本原因!
在pycharm下,為了中文不亂碼,那麼需要注意一下幾個方面:
一、每一個源程序文件頭部,需要加上
#-*-coding:utf-8;-*-
這樣就沒有亂碼了

『貳』 python解決csv文件用excel打開亂碼問題

【問題】

python輸出的csv文件用excel打開,裡面的中文會變成亂碼,但用window下的記事本或mac下的numbers打開就正常顯示。

原因是python輸出的文件是utf-8編碼寫入的,excel默認以gbk方式讀取,導致亂碼發生。

【解決方法1】文件產出時encoding設置為utf-8-sig    

用excel打開csv時,excel會先檢查文件的第一個字元,來了解這個文件是什麼編碼方式,如果這個字元是BOM,excel就知道用utf-8的方式打開這個文件。python自帶了處理BOM的編碼方式uft-8-sig,因此只需要在文件產出時將encoding設置為utf-8-sig。

如果文件不是由python產出的,只需要以utf-8方式讀入再以utf-8-sig方式存儲即可

【解決方法2】懶人法,適用只含簡體中文的文件

用記事本打開,點擊另存為,右下角編碼方式選擇「ANSI」,這個過程是把這個文件改成gbk編碼格式,excel就是默認用gbk方式打開的。

參考: Python寫的csv文件,如何讓 Excel 雙擊打開不亂碼? - 雲+社區 - 騰訊雲

對編碼格式一竅不通的可以閱讀以下網頁

python筆記——二進制和文件編碼_砍柴姑娘Jourosy的博客-CSDN博客

編碼方式之ASCII、ANSI、Unicode概述 - 藍海人 - 博客園

【簡單總結】:

1. 首先需要了解 字元集 和 字元編碼 兩個概念,字元集定義了字元和二進制的一一對應關系,字元編碼規定了如何將字元的編號存儲到計算機中。

2. Unicode是字元集,包含了全球文字的唯一編碼,utf-8是編碼方式,將unicode以某種方式存儲到計算機中。

3. 有些字元集和編碼是結合在一起的,稱作字元集還是編碼都無所謂,比如ASCII,GBK

4. ANSI是各個國家地區不同擴展編碼方式的總稱,互不兼容(可以看出來通用性沒有utf好)

5. 不同編碼方式在轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字元串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。

『叄』 python中文顯示亂碼,已經在開頭有了coding: utf-8

亂碼原因:
因為你的文件聲明為 utf-8,並且也應該是用 utf-8 的編碼保存的源文件。但是 windows 的本地默認編碼是 cp936,也就是 gbk 編碼,所以在控制台直接列印 utf-8 的字元串當然是亂碼了。

解決方法:

py文件用記事本打開,另存為utf-8格式即可

『肆』 python讀取文件解決『utf8』 codec can』t decode byte 0xa1的問題

一般這種文件存在類似字元:

如果UTF-8搞不定,可以採取ISO-8859-1編碼方式解決:

最早的編碼是iso8859-1,和ascii編碼相似。但為了方便表示各種各樣的語言,逐漸出現了很多標准編碼,重要的有如下幾個。

很明顯,iso8859-1編碼表示的字元范圍很窄,無法表示中文字元。但是,由於是單位元組編碼,和計算機最基礎的表示單位一致,所以很多時候,仍舊使用iso8859-1編碼來表示。而且在很多協議上,默認使用該編碼。比如,雖然"中文"兩個字不存在iso8859-1編碼,以gb2312編碼為例,應該是"d6d0 cec4"兩個字元,使用iso8859-1編碼的時候則將它拆開為4個位元組來表示:"d6 d0 ce c4"(事實上,在進行存儲的時候,也是以位元組為單位處理的)。而如果是UTF編碼,則是6個位元組"e4 b8 ad e6 96 87"。很明顯,這種表示方法還需要以另一種編碼為基礎。

需要說明的是,定長編碼便於計算機處理(注意GB2312/GBK不是定長編碼),而unicode又可以用來表示所有字元,所以在很多軟體內部是使用unicode編碼來處理的,比如java

注意,雖然說utf是為了使用更少的空間而使用的,但那隻是相對於unicode編碼來說,如果已經知道是漢字,則使用GB2312/GBK無疑是最節省的。不過另一方面,值得說明的是,雖然utf編碼對漢字使用3個位元組,但即使對於漢字網頁,utf編碼也會比unicode編碼節省,因為網頁中包含了很多的英文字元。

『伍』 python print中文亂碼問題 win10 Python2

python2字元串編碼的問題,如果要輸出中文可以使用u前綴,這樣就可以直接使用了

a=u'你好'
printa

這樣就可以了

『陸』 Python 網路編程問題,如圖,為什麼utf-8會亂碼怎麼改呢

你在存.py文件時,將字元編碼改成UTF-8的(用記事本另存為,就有編碼格式選擇那一項)

盲猜你是用的windows寫代碼,代碼格式是ANSI格式

『柒』 python中文亂碼是怎麼一回事

python報錯invalid character in identifier,意思就是「標識符中的無效字元」,檢查下有沒有字元是中文的,把中文字元改成英文字元再運行就可以了。

Python的作者有意的設計限制性很強的語法,使得不好的編程習慣(例如if語句的下一行不向右縮進)都不能通過編譯。其中很重要的一項就是Python的縮進規則。

一個和其他大多數語言(如C)的區別就是,一個模塊的界限,完全是由每行的首字元在這一行的位置來決定的(而C語言是用一對花括弧{}來明確的定出模塊的邊界的,與字元的位置毫無關系)。這一點曾經引起過爭議。

因為自從C這類的語言誕生後,語言的語法含義與字元的排列方式分離開來,曾經被認為是一種程序語言的進步。不過不可否認的是,通過強製程序員們縮進(包括if,for和函數定義等所有需要使用模塊的地方),Python確實使得程序更加清晰和美觀。

(7)pythonutf8亂碼擴展閱讀

Python 中文編碼:

Python中默認的編碼格式是 ASCII 格式,在沒修改編碼格式時無法正確列印漢字,所以在讀取中文時會報錯。

解決方法為只要在文件開頭加入# -*- coding: UTF-8 -*-或者# coding=utf-8就行了

注意:# coding=utf-8的=號兩邊不要空格。

實例:

(Python 2.0+)

#!/usr/bin/python

# -*- coding: UTF-8 -*-

print( "你好,世界" )

輸出結果為:

你好,世界

『捌』 python命令行輸入中文亂碼怎麼辦

python2.X,代碼中指定了UTF-8,但是在cmd命令行窗口時,列印的中文仍然會亂碼。

在python3不存在該問題

運行結果:

原因

中文windows默認的輸出編碼為gbk ,與腳本中定義的UTF-8不一樣,所以出現了解碼失敗的情況。

相關推薦:《Python基礎教程》

解決方法

有如下兩種方法可以解決這個問題

方法一

我們可以通過先把中文解碼為unicode,然後再轉化為gbk來解決這個問題:

修改後運行結果:

方法二

當然,我們也可以通過改變cmd命令行窗口的輸出格式來解決這個問題:

·chcp 65001 就是換成UTF-8代碼頁

·chcp 936 可以換回默認的GBK

但是這樣就降低了腳本的兼容性,在其他環境運行的時候可能還會出現這樣的錯誤,而且可能會影響其他腳本運行,所以推薦使用第一種方法。

『玖』 執行python腳本出現亂碼怎麼解決

執行python腳本出現亂碼的解決方法:首先把中文解碼為unicode,具體方法如:【decode('utf-8')】;然後再轉化為gbk即可,具體方法如:【encode('gbk')】。
問題:
代碼中指定了UTF-8編碼,但是在cmd命令行窗口時列印的中文仍然會亂碼。
(推薦教程:Python入門教程)
原因:
windows下中文默認的輸出編碼為gbk ,與腳本中定義的UTF-8不一樣,所以出現了解碼失敗的情況。
解決方法:
可以先把中文解碼為unicode,然後再轉化為gbk來解決這個問題。
舉例:
運行結果:

熱點內容
skystudio安卓在哪裡下線 發布:2024-12-27 17:42:49 瀏覽:868
淘客基地源碼 發布:2024-12-27 17:38:37 瀏覽:225
如何訪問本地網站 發布:2024-12-27 17:38:31 瀏覽:282
單片機匯編語言和c語言 發布:2024-12-27 17:24:54 瀏覽:835
合資車轎車配置高的有哪些 發布:2024-12-27 17:24:12 瀏覽:602
qq助手怎麼將蘋果導入安卓通訊錄 發布:2024-12-27 17:19:04 瀏覽:978
安卓手機如何重置系統 發布:2024-12-27 17:16:19 瀏覽:445
同城游戲伺服器連接失敗怎麼辦 發布:2024-12-27 17:14:44 瀏覽:591
大學學生用什麼樣的平板配置 發布:2024-12-27 17:14:36 瀏覽:418
樂視1s存儲卡 發布:2024-12-27 17:11:37 瀏覽:582