python學習之基礎:編碼
參考網址:https://www.xncoding.com/2015/10/24/python/unicode.html
在計算機內存中,統一使用Unicode編碼,當需要保存到硬盤或者需要傳輸的時候,就轉換為UTF-8編碼。
用記事本編輯的時候,從文件讀取的UTF-8字符被轉換為Unicode字符到內存裏, 編輯完成後,保存的時候再把Unicode轉換為UTF-8保存到文件:
瀏覽網頁的時候,服務器會把動態生成的Unicode內容轉換為UTF-8再傳輸到瀏覽器:
所以你看到很多網頁的源碼上會有類似的信息,表示該網頁正是用的UTF-8編碼
>>> print(‘包含中文的str‘)
包含中文的str
>>> ‘ABC‘.encode(‘ascii‘)
b‘ABC‘
>>> ‘中文‘.encode(‘utf-8‘)
b‘\xe4\xb8\xad\xe6\x96\x87‘
>>> ‘中文‘.encode(‘ascii‘)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 0-1: ordinal not in range(128)
>>> b‘ABC‘.decode(‘ascii‘)
‘ABC‘
>>> b‘\xe4\xb8\xad\xe6\x96\x87‘.decode(‘utf-8‘)
‘中文‘
在操作字符串時,我們經常遇到str和bytes的互相轉換。為了避免亂碼問題,應當始終堅持使用UTF-8編碼對str和bytes進行轉換。
由於Python源代碼也是一個文本文件,所以,當你的源代碼中包含中文的時候,在保存源代碼時, 就需要務必指定保存為UTF-8編碼。當Python解釋器讀取源代碼時,為了讓它按UTF-8編碼讀取,我們通常在文件開頭寫上這兩行:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
python學習之基礎:編碼
相關推薦
python學習之基礎:編碼
file 包含 int meta nic char not in tar python解釋器 參考網址:https://www.xncoding.com/2015/10/24/python/unicode.html 在計算機內存中,統一使用Unicode編碼,當需要保存
Python學習之路:集合的使用
元素 int pda car ren 添加 brush 存在 對稱 集合關系測試: list_1=[1,4,5,7,3,6,7,9] list_1=set(list_1) #去重 list_2=set([2,6,0,66,22,8]) print(list_1,typ
Python學習之路:文件操作
append 句柄 enc pre light logs utf highlight 追加內容 文件基本操作: 打開、讀取、追加、關閉 #data = open("yesterday",encoding="utf-8").read() #打開並讀取文件 f=open("y
Python學習之路:文件操作之增刪改查
打印 odin day 打開 aps 之前 編碼 數據 adl f = open("yesterday","r",encoding="utf-8") #print(f.read()) #for i in range(5): # print(f.readline())
Python學習之路:裝飾器實現
fun python run top 學習 pytho sleep light time() import time def timer(func):#timer(test1) func=test1 def deco(): start_time
Python學習之路:裝飾器實現終極版
index type after color return 結果 python turn 調用 網站實現驗證功能裝飾器: import time user,passwd=‘alex‘,‘abc123‘ def auth(func): def wrapper(*ar
Python學習之路:生成器
學習 tar light 列表 print pytho highlight 範圍 for循環 列別生成式:使代碼更簡潔 >>> [i*2 for i in range(10)] [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
Python學習之路:叠代器
提前 func for循環 當我 本質 惰性 lec brush gen 可直接作用於for循環的數據類型有以下幾種: 一類是集合數據類型,如list\tuple\dict\set\str等; 一類是generator,包括生成器和帶yield的generator func
Python學習之路:內置函數
函數 utf capi dict lte python學習 func blog .cn print(all([0,15,3]))# all全部都是可叠代的元素時返回TRUE print(all([1,15,3])) print(any([1,15,3]))#any任意一個
python學習之爬蟲:安裝requests模塊
works 2.7 err fix errno 13 lec dna cal logs 終端輸入命令:pip install requests 如果報錯: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menl
python學習之爬蟲:BeautifulSoup
att clas XML http ng- making bsp style span 一、功能: BeautifulSoup是用來從HTML或XML中提取數據的Python庫。 二、導入: from bs4 import BeautifulSoup import bs4
Python學習之路:time和datetime模塊
exists atime shuffle aaa 絕對路徑 ons 平臺 文件名 可能 轉自:http://blog.51cto.com/egon09/1840425 一:內建模塊 time和datetime(http://www.jb51.net/article/49
Python學習之路:random模塊
和數 highlight body ima bubuko randint 之路 ren 分享 #隨機生成4位數字的驗證碼 # import random # # checkcode=‘‘ # # for i in range(4): # current=ran
Python學習之路:staticmethod classmethod property方法
屬性 -c name .html 學習 assm true urn 系列 參考鏈接:http://www.cnblogs.com/alex3714/articles/5213184.html 靜態方法 只是名義上歸類管理,實際上在靜態方法裏訪問不了類或實例中的任何屬性
Python學習之路:socket簡單實例
acc 學習 綁定 span spa bind local int code 客戶端 1 #客戶端 2 import socket 3 4 client = socket.socket()#相當於聲明socket類型,同時生成socket連接對象 5 cli
Python學習之路:守護線程
之路 學習之路 pos lose start 啟動 AD 技術分享 pre 守護線程:只起到守護主線程的作用,主線程退出守護線程也跟著退出。 1 import threading,time 2 3 def run(n): 4 print("task",
Python學習之路:隊列及生產者消費者模型
open imp read 之路 while args put bsp tar 隊列: 先進先出 後進先出 VIP(優先級) import queue # q = queue.LifoQueue()#後進先出 # # q.put(1) # q.put(2) # q.p
python學習之基礎語法循環語句
21.輸入一個5位數字,判斷其位數: val = input("please input a 1-99999 number:") vals = int(val) if vals >= 1000: if vals >=10000: print("This is 5")
python學習之基礎篇
學習 功能 linu 輸出 程序 語言 記錄 自己的 mat python是一種實際應用較為廣泛的語言,並且python的使用是完全免費的,python是一種面向對象(oop)的語言,類模塊支持多繼承,多態等。筆者認為python最強大之處是可以靈活調用其他語言的程序為其所
python學習之樂趣:列印佛祖
起源 最近無聊在網上看到很多程式設計師寫的無聊的程式,無意間看到這個簡單有趣的程式碼,就心想測試一下,還真很有趣。 閒話少說,看效果 print(" _ooOoo_ ") print("