字符編碼簡(jiǎn)述

計(jì)算機(jī)里只有高低電頻砾医。

一:知識(shí)介紹
字符 A 是如何顯示在屏幕上的泼掠?
1.在鍵盤(pán)按下 A按鍵怔软,鍵盤(pán)將A轉(zhuǎn)化為電量的變化(數(shù)值65),通過(guò) USB 口择镇,到達(dá)計(jì)算機(jī)電路板挡逼。計(jì)算機(jī)根據(jù)這數(shù)值,對(duì)照 ASCII 表(這要看你當(dāng)前系統(tǒng)默認(rèn)是哪種編碼了腻豌。)家坎,根據(jù)畫(huà)出 ‘A’ 的計(jì)算公式,在屏幕上吝梅,涂黑一個(gè)個(gè)像素點(diǎn)虱疏,畫(huà)出圖形‘A’的樣子。至此苏携,你按下 A做瞪,看到了屏幕上的 A。

2.屏幕是怎么顯示出字符 A 右冻?
對(duì)照了ASCII 表后装蓬,到相應(yīng)位置(字庫(kù))取得了字符 A 的圖形矩陣(由傳說(shuō)中的專(zhuān)業(yè)人士事先一個(gè)個(gè)像素畫(huà)好存放在電腦里)衩侥,然后按照A 的形狀一個(gè)個(gè)像素點(diǎn)畫(huà)出 A 來(lái),就像紋身一樣矛物,最終才顯示在屏幕茫死。

  1. 編碼字符集(也簡(jiǎn)稱(chēng)為 字符集 )
    ASCII 表,就是個(gè)編碼字符集(字符集)履羞。它是你和電腦之間的翻譯官峦萎。
    字符集們的歷史,想當(dāng)年......
    美國(guó)人只用一字節(jié)表示所有的英文字母忆首,有了 ASCII 表爱榔。
    1981年,中國(guó)大陸用了幾個(gè)字節(jié)表示了所有中文糙及,有了GB2312 表(兼容了 ASCII)详幽。
    1984年,中國(guó)臺(tái)灣多使用繁體字浸锨,發(fā)明了 BIG5 表(兼容了 ASCII)唇聘。

但是 GB2312 明顯是沒(méi)有兼容 BIG5 的,所以柱搜,1985年迟郎,你發(fā)一封郵件給臺(tái)灣的同事,他在電腦上打開(kāi)聪蘸,亂碼宪肖。
因?yàn)樗娔X里沒(méi)有 GB2312 這個(gè)翻譯官。

這樣不行健爬,各地區(qū)交流麻煩控乾。
于是國(guó)際組織發(fā)明一種字符集 Unicode ,包含世界上所有國(guó)家娜遵,地區(qū)的文字蜕衡。
Unicode 字符集,有各種字符編碼魔熏,UTF-8,UTF-16 等衷咽。

Windows 的內(nèi)碼是 Unicode,只要文件能說(shuō)明自己使 用什么編碼蒜绽,用戶又安裝了對(duì)應(yīng)的代碼頁(yè)(字符編碼),Windows 就能正確顯示(呵).桶现。
部分代碼頁(yè)舉例:
932 —日文
936 —簡(jiǎn)體中文(GBK)
949 —韓文
950 —繁體中文(大五碼)
65001 — UTF-8 Unicode

所以躲雅,現(xiàn)在臺(tái)灣同事發(fā)過(guò)來(lái)的文件不會(huì)亂碼了,只要你的 Windows 系統(tǒng)上骡和,有這個(gè) BIG5 的代碼頁(yè)(950)相赁。你可以將系統(tǒng)的當(dāng)前活動(dòng)代碼頁(yè)轉(zhuǎn)換為
BIG5 后相寇,再打開(kāi)文件。
這是系統(tǒng)層面钮科。不過(guò)唤衫,現(xiàn)在很多軟件都支持各種編碼,比如 sublime 绵脯,可以打開(kāi)佳励,然后刷新文件編碼為 BIG5 。就可以了蛆挫。

1.常用做法
在 Python 源代碼文件開(kāi)頭中加上兩句話(雖然前面是#號(hào)赃承,但操作系統(tǒng)認(rèn)的):

#!/usr/bin/env python3  
#-*- coding: utf-8 -*-        表示本文檔是要以 utf-8 來(lái)編碼的。這話是說(shuō)給操作系統(tǒng)聽(tīng)的悴侵,因?yàn)槭遣僮飨到y(tǒng)負(fù)責(zé) 存儲(chǔ) 和 讀取 該文檔瞧剖。

2.涉及函數(shù)
數(shù)值與字符轉(zhuǎn)換:
print(ord('我')) 25105 #字符轉(zhuǎn)為整型
print(chr(25105)) 我 #數(shù)值轉(zhuǎn)為字符
字符串長(zhǎng)度:
print(len('ABC')) 3 # 3 個(gè)字符
print(len('我')) 1 # c 一般是兩個(gè)字節(jié)(c 可不管你是幾個(gè)字,實(shí)在地給你算出是幾個(gè)字節(jié))可免。java 也是一抓于,代表一個(gè)字符。

3.閑話
linux 文件是 utf-8 編碼的浇借,而 windows 文件的編碼方式很多(你保存一個(gè) txt 的時(shí)候毡咏,就可見(jiàn)可選的編碼,ANSI , Unicode )逮刨。
當(dāng)然呕缭,我們大家都用 Unicode 并以 utf-8 編碼就最好不過(guò)了,但不可否認(rèn)修己,再好的編碼將來(lái)也會(huì)被更好的替代恢总。而同時(shí),我們不得不做的是睬愤,兼容老版本的編碼片仿。比如,你要和原來(lái)的交易系統(tǒng)聯(lián)調(diào)尤辱,你總不能說(shuō)砂豌,我用的是最新的,你后臺(tái)自己改吧光督,你老大反手一巴掌阳距。。结借。筐摘。有些時(shí)候,舊的已經(jīng)沒(méi)法改了,不是沒(méi)人改咖熟,就是影響太大圃酵,改了,誰(shuí)也收拾不了這亂攤子馍管。陳年代碼郭赐,散發(fā)著無(wú)窮的魅力,令人熱血沸騰确沸,尸骨無(wú)存捌锭。

Python3 就有點(diǎn)特別了哈,它還真的不是這般人张惹,就沒(méi)想著兼容舀锨,要走得快,走得好宛逗,走得大步坎匿。與 python2 脫節(jié)。相信在智能系統(tǒng)上雷激,它能發(fā)揮很重要的作用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末替蔬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子屎暇,更是在濱河造成了極大的恐慌承桥,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件根悼,死亡現(xiàn)場(chǎng)離奇詭異凶异,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)挤巡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén)剩彬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人矿卑,你說(shuō)我怎么就攤上這事喉恋。” “怎么了母廷?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵轻黑,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我琴昆,道長(zhǎng)氓鄙,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任椎咧,我火速辦了婚禮玖详,結(jié)果婚禮上把介,老公的妹妹穿的比我還像新娘勤讽。我一直安慰自己蟋座,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布脚牍。 她就那樣靜靜地躺著向臀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诸狭。 梳的紋絲不亂的頭發(fā)上券膀,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音驯遇,去河邊找鬼芹彬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛叉庐,可吹牛的內(nèi)容都是我干的舒帮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼陡叠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼玩郊!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起枉阵,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤译红,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后兴溜,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體侦厚,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年拙徽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了刨沦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡斋攀,死狀恐怖已卷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情淳蔼,我是刑警寧澤侧蘸,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站鹉梨,受9級(jí)特大地震影響讳癌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜存皂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一晌坤、第九天 我趴在偏房一處隱蔽的房頂上張望逢艘。 院中可真熱鬧,春花似錦骤菠、人聲如沸它改。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)央拖。三九已至,卻和暖如春鹉戚,著一層夾襖步出監(jiān)牢的瞬間鲜戒,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工抹凳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留遏餐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓赢底,卻偏偏與公主長(zhǎng)得像失都,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子颖系,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 字符是用戶可以讀寫(xiě)的最小單位嘁扼。計(jì)算機(jī)所能支持的字符組成的集合信粮,就叫做字符集。字符集通常以二維表的形式存在趁啸。二維表的...
    劉惜有閱讀 8,117評(píng)論 2 14
  • 字符集和編碼簡(jiǎn)介 在編程中常城吭担可以見(jiàn)到各種字符集和編碼,包括ASCII,MBCS,Unicode等字符集不傅。確切的說(shuō)...
    蘭山小亭閱讀 8,498評(píng)論 0 13
  • 可以看我的博客 lmwen.top 或者訂閱我的公眾號(hào) 簡(jiǎn)介有稍微接觸python的人就會(huì)知道旅掂,python中...
    ayuLiao閱讀 3,121評(píng)論 1 5
  • Passage 1The concept of “environment”is certainly difficu...
    tgtiger閱讀 363評(píng)論 0 0
  • 高人的指點(diǎn)崖疤,能幫助你找到方向; 貴人的相助秘车,能助你克服困難; 小人的監(jiān)督,能使你防微杜漸; 個(gè)人的奮斗劫哼,則是將你推...
    軍旅之晴閱讀 121評(píng)論 0 0