當前位置:首頁 » 編程語言 » pythoncodingutf8

pythoncodingutf8

發布時間: 2022-06-10 05:59:17

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

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

解決方法:

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

Ⅱ coding=utf-8在python中#是什麼作用

PY文件當中是不支持中文的,即使你輸入的注釋是中文也不行,為了解決這個問題,就需要把文件編碼類型改為UTF-8的類型,輸入這個代碼就可以讓PY源文件裡面有中文了。
建議你寫代碼之前都把這句話加上,因為不管是注釋還是彈出消息提示,免不了的要輸入中文,所以這個基本是必須的。

Ⅲ 怎麼在Python里使用UTF-8編碼

概述

在python代碼即.py文件的頭部聲明即可

解析

py文件中的編碼

Python 默認腳本文件都是 ANSCII 編碼的,當文件 中有非 ANSCII 編碼范圍內的字元的時候就要使用"編碼指示"來修正一個 mole 的定義中,如果.py文件中包含中文字元(嚴格的說是含有非anscii字元),則需要在第一行或第二行指定編碼聲明:

# -*- coding=utf-8 -*-

#coding=utf-8

# 以上兩種選其一即可

其他的編碼如:gbk、gb2312也可以;否則會出現:

SyntaxError: Non-ASCII character 'xe4' in file test.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

python中的編碼與解碼

先說一下python中的字元串類型,在python中有兩種字元串類型,分別是 str 和 unicode,他們都是basestring的派生類;

str類型是一個包含Characters represent (at least) 8-bit bytes的序列;

unicode 的每個 unit 是一個 unicode obj;

在str的文檔中有這樣的一句話:

    The string data type is also used to represent arrays of bytes, e.g., to hold data read from a file.

也就是說在讀取一個文件的內容,或者從網路上讀取到內容時,保持的對象為str類型;如果想把一個str轉換成特定編碼類型,需要把str轉為Unicode,然後從unicode轉為特定的編碼類型如:utf-8、gb2312等。

拓展內容

utf-8編碼

UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字元編碼,也是一種前綴碼。它可以用來表示Unicode標准中的任何字元,且其編碼中的第一個位元組仍與ASCII兼容,這使得原來處理ASCII字元的軟體無須或只須做少部分修改,即可繼續使用。因此,它逐漸成為電子郵件、網頁及其他存儲或發送文字的應用中,優先採用的編碼。

UTF-8使用一至六個位元組為每個字元編碼(盡管如此,2003年11月UTF-8被RFC 3629重新規范,只能使用原來Unicode定義的區域,U+0000到U+10FFFF,也就是說最多四個位元組):

1、128個US-ASCII字元只需一個位元組編碼(Unicode范圍由U+0000至U+007F)。

2、帶有附加符號的拉丁文、希臘文、西里爾字母、亞美尼亞語、希伯來文、阿拉伯文、敘利亞文及它拿字母則需要兩個位元組編碼(Unicode范圍由U+0080至U+07FF)。

3、其他基本多文種平面(BMP)中的字元(這包含了大部分常用字,如大部分的漢字)使用三個位元組編碼(Unicode范圍由U+0800至U+FFFF)。

4、其他極少使用的Unicode輔助平面的字元使用四至六位元組編碼(Unicode范圍由U+10000至U+1FFFFF使用四位元組,Unicode范圍由U+200000至U+3FFFFFF使用五位元組,Unicode范圍由U+4000000至U+7FFFFFFF使用六位元組)。

對上述提及的第四種字元而言,UTF-8使用四至六個位元組來編碼似乎太耗費資源了。但UTF-8對所有常用的字元都可以用三個位元組表示,而且它的另一種選擇,UTF-16編碼,對前述的第四種字元同樣需要四個位元組來編碼,所以要決定UTF-8或UTF-16哪種編碼比較有效率,還要視所使用的字元的分布范圍而定。不過,如果使用一些傳統的壓縮系統,比如DEFLATE,則這些不同編碼系統間的的差異就變得微不足道了。若顧及傳統壓縮演算法在壓縮較短文字上的效果不大,可以考慮使用Unicode標准壓縮格式(SCSU)。

互聯網工程工作小組(IETF)要求所有互聯網協議都必須支持UTF-8編碼。互聯網郵件聯盟(IMC)建議所有電子郵件軟體都支持UTF-8編碼。

Ⅳ python中如何獲取中文的utf8編碼

  • 首先要表示一個漢字,至少需要2個位元組碼

  • 如果需要以utf解碼你的漢字,可以用如下辦法

>>>unicode('人','utf-16')
u'ucbc8'
  • 如果需要以gbk解碼你的漢字,可以用如下辦法

>>>unicode('人','gbk')
u'u4eba

Ⅳ python 用coding:utf-8沒用啊!還是亂碼。我是要列印輸出文件夾中的文件名。系統:UBUNTU。高手指點!!

試試這個

import os

for filenam in os.listdir('.'):
print filename.decode('utf-8').encode('utf-8')

另外你的問題和 coding:utf-8 沒關系的,加那行是為了在代碼里用其他字元,比如
# -*- coding: utf-8 -*-
a = 『中文『

Ⅵ 如何設置python的編碼格式為utf-8

python的編碼格式?
#coding=utf-8
這是文檔編碼
import sys
sys.setdefaultencoding("utf-8")
這是設置默認編碼方式為utf-8
xx.encode("utf-8")
這是字元串編碼操作
import codecs
codecs.open(xx,'r','utf-8"),這是文件編碼讀取方式

Ⅶ python里的#coding=utf_8是什麼意思

python編輯軟體sublime不支持非utf-8格式的中文,有時會顯示亂碼
編輯的文件頭一行,通常先先手動設置一下編碼格式#encoding:utf-8
然後再編輯文件,通常能解決一些亂碼問題
def 是python的關鍵字,表達的意思是定義函數,後面跟的就是函數名,括弧內為函數變數,也可以為空
文字比較抽象,等用到例子以後可以再具體分析

Ⅷ 為什麼我的Python3加註釋也要用#coding:utf-8

#coding:utf-8
如果沒有給出其他編碼提示,Python將默認為ASCII作為標准編碼
另外 完整的Python源文件應該使用單個編碼。不允許嵌入不同編碼的數據,並且在編譯Python源代碼期間將導致解碼錯誤。

Ⅸ python # -*- coding: cp936 -*- # -*- coding: utf-8 -*- 是做什麼用的

這種格式是對python源文件編碼方式的聲明。
它表示你的源文件(當前執行的python腳本)的編碼表,如果指定,則python解釋器會按照指定的編碼來對腳本內容進行解碼。
你在windows中創建的文本文件如無意外都應該是預設的中國地區ANSI編碼即GBK編碼。而cp936編碼能夠與GBK兼容,但少幾十個字元,而utf8編碼不與GBK編碼兼容。
所以你用GBK編碼寫出的python腳本,卻向解釋器聲明它是由utf8寫成,當然會出錯。實際上你刪掉編碼的聲明,python解釋器能夠自行判斷編碼表。
另外你也可以嘗試將python腳本轉換編碼為utf8,具體操作為使用記事本打開,然後另存為,選擇編碼,utf8。如使用其他IDE,請自行摸索。

Ⅹ python聲明utf-8為什麼以注釋的形式 #-*-coding:UTF-8 -*-

三種引號都表示字元串
單引號表示的字元串里可包含雙引號,當然不能包含單引號
雙引號表示的字元串里可以包含單引號,字元串都只能有一行
三個引號能包含多行字元串,同時常常出現在函數的聲明的下一行,來注釋函數的功能,與眾不同的地方在於,這個注釋作為函數的一個默認屬性,可以通過 函數名.__doc__ 來訪問

熱點內容
壓縮比英文 發布:2024-05-06 01:56:35 瀏覽:171
數字php 發布:2024-05-06 01:53:10 瀏覽:742
編程中怎麼 發布:2024-05-06 01:43:32 瀏覽:629
如何訪問遠程資料庫 發布:2024-05-06 01:39:20 瀏覽:447
刷演算法的網站 發布:2024-05-06 01:30:39 瀏覽:270
少兒編程徐州 發布:2024-05-06 01:20:42 瀏覽:462
sqlserver連接驅動 發布:2024-05-06 00:33:34 瀏覽:646
存儲開銷 發布:2024-05-06 00:13:38 瀏覽:954
伺服器怎麼盈利 發布:2024-05-05 23:56:16 瀏覽:942
java網站培訓學校 發布:2024-05-05 23:43:11 瀏覽:41