一文幫你搞懂GBK碼協議,讓你真正理解和搞定它!

2021-01-14 電子工程專輯
微信公眾號:晶片之家(ID:chiphome-dy) 關於中文字符的顯示,你聽到最多的兩個名詞就是:GB2312和GBK。於是你上網一查,知道了GB2312碼有6000多個字符,GBK碼有2萬多個字符。
但是,不管你怎麼查資料,你最終發現,你還是只知道:GB2312有6000多個字符,而GBK有2萬多個字符。這就尷尬了... 當你學會了使用GBK字庫以後,你就可以很輕鬆的在你的液晶屏上顯示漢字了,如下圖所示... 當我們想顯示「瑞生」的時候,你只需要在keil中寫入如下語句即可:

LCD_ShowString(0, 0, "瑞生");

這條語句,是調用了一個函數,其中,0,0是液晶屏的坐標,代表著你要在液晶屏的什麼位置顯示。


然後,KEIL會在編譯的時候,自動將你輸入的漢字「瑞生」編譯成GBK碼...


「瑞」的GBK碼是十六進位C8F0,「生」的GBK碼是十六進位C9FA。


記住:每個中文字符的GBK碼都是唯一的、兩個字節,例如,「瑞」的GBK碼的兩個字節分別用十六進位表示為:0xC8和0xF0。(0x代表:後面的是十六進位數據),當你看到一個GBK碼是0xC8F0,它也只能是「瑞」這個字。


記住上面那段話很重要,2個重點:


1.GBK碼是2個字節

2.每個中文字符的GBK是唯一的


1、為什麼中文字符GBK碼是2個字節?


學過計算機的都聽說過Ascii,每個英文字符都有自己的Ascii碼,你可以百度一下,查詢英文字符對應的Ascii碼,一共有95個,我們知道,一個字節的數據範圍是0~255,所以,用一個字節,就可以表示所有的英文字符了。


但是...,中文字符有很多,已經遠遠超過了一個字節的數據範圍(255),而2個字節的數據範圍是0~65535,已經足夠表示所有的中文字符了。(GBK碼有2萬多個字符,65535是6萬多)


這下你就想通了為什麼是2個字節表示中文字符了吧?


2、為什麼是唯一的?


答:規定的。你知道什麼叫「協議」嗎?你知道為什麼會有「協議」嗎?如果沒有協議,人們就會亂來。所以,協議其實就是一種規定。


就拿GBK協議來說,協議說「瑞」的GBK碼是0xC8F0,那「瑞」的GBK碼就是0xC8F0。


GBK碼,規定了所有漢字的碼,並且宣布:大家以後用的話,都按照協議來就好!所以,現在GBK碼基本上都在計算機上普及了。這就是前面提到的:KEIL會自動把漢字轉換為對應的GBK碼的原因。


3、我想知道某個漢字的GBK碼,怎麼查詢?


這個不是必須要知道,剛才說過了,你寫程序的時候,KEIL會自動把漢字變成GBK碼,你都不用參與。


但是,可能有其它用途需要用到,比如,我寫這篇文章,需要知道「瑞」的GBK碼,就需要查詢一下。


方法如下:


百度搜索:gbk碼查詢,如下圖所示,點開第一個連結就可以查了。




點開以後,按照要求,輸入「瑞生」兩字,點擊「查看編碼」就可以了。




好了,我們繼續!


GBK碼的2個字節,第一個字節的範圍是0X81~0XFE,第二個字節的範圍是0X40~0XFE。你看看,他們不是從字節0開始的,從哪開始,都是規定的。


這樣說的話,第一個GBK碼就是0x8140,能看懂嗎?


第二個GBK碼就是0x8141...一直到0x81FE,再後來就是0x8240...依次列推...


看懂了上面三段話,你就可以理解了:GBK碼其實就是一座公寓,公寓裡面有126個房間,每個房間有191個字符。


GBK碼的第一個字節代表著公寓的房間號,公寓的房間號是從0x81~0xFE,你可以算一下,一共有126個門牌號。0xFE-0X81+1=126。


GBK碼的第二個字節代表著公寓裡面的每個房間裡有多少個字符,0xFE-0X40+1=191。


實際上,GBK協議規定,第二個字節的0x7F位置是空著的,沒有字節,所以,每個房間是有190個字符,不過,並不是每個字符的位置都有字符,所以,我們這裡說191個,也無所謂了。


除此之外,GBK的漢字順序都是排好的,第一個是哪個字,第二個是哪個字...都是規定的!


下圖是排好順序的GBK字庫txt文件的開始部分...




你可以看到,第一個字符是「丂」,從上面的GBK碼協議,你也可以知道,第一個字符的GBK碼應該是0x8140,也就是說,「丂」的GBK碼就是0x8140,我們來驗證一下...


怎麼驗證呢?用我上邊給你提到的百度搜索出來的那個在線查詢GBK碼的網站就可以了。




這次,我們在下邊的輸入框輸入,網頁提示你,輸入十六進位的話,前面加字符「&H」,所以我們輸入的是「&H8140」,然後點擊「查看文字」,就可以看到,這個字是「丂」了。


驗證正確。


上面我講的,你理解了嗎?今天就先給大家介紹這些GBK碼的定義吧,以後再給大家講如何使用GBK碼顯示到液晶屏上。

   重磅開源:帶屏幕LCD脫機下載器離線下載器!  【開源方案】2.4G遙控器,接收器全套詳細設計資料  【全開源功放】美國NS公司的經典晶片,LM3886!  分享一個來自蘇泊爾的超低成本隔離交流電壓檢測+掉電檢測二合一電路

  軟體神器TortoiseGit,曉宇姐姐教你使用圖形化方式管理單片機程序版本!

請戳右下角,給我一點在看!

相關焦點

  • 後端工程師,必須搞懂的 RPC 框架
    如果你能夠搞懂 RPC 框架的設計原理,或者能夠自己造一個輪子出來,那我起碼可以確定你的基本能力肯定不差。如果你還有機會參與公司的 RPC 治理工作,並且能夠解決各種線上問題,那你的能力應該能和很多公司的高級架構師能力相當了。
  • 手把手帶你零基礎 7 晚學會 SPSS 統計分析,搞定高分 SCI
    其實對於一些難理解記憶的統計理論、軟體操作的方法都可以編成口訣記憶。想要運用到文章裡也可以總結適用於論文的模板,數據直接往裡面套發文更快速。但是這些便捷方法也都需要耗費很長時間去學習總結,對於時間寶貴想要快速發文章的科研人都是很困難的。
  • 一份資料「62張圖」幫你全部搞定
    變式是指看待問題的條件和結論,變換問題的形式,而問題的實質不變,以便從不同的角度,不同的方面來說明問題的實質,使問題本質的東西更全面、更突出的顯現出來。為此我們清北助學團給大家整理了《高中函數62個特殊圖像匯總》搞定函數部分,突破壓軸題!高分穩拿!
  • 超實用圖解幫你搞定易混淆的形容詞——Each和 Every及High和Tall
    超實用圖解幫你搞定易混淆形容詞,今天要帶大家認識的是Each和 Every以及High和Tall這四個單詞的用法和差別。「你很高」的英文到底是」You are tall」還是」You are high」呢? 雖然兩者都解釋為「高」,但是在用法上還是有些許的不同。
  • 領克幫你搞定
    1、車身顏色不能和特種車輛相同或相似特種車輛,特指:"警車、消防車、救護車、路政執法車"等享有法律權利的車輛,在改色時要避開與之類似的改色方案,更不能模仿其配色、花紋。2、額外注意"貼膜改色"面積不得超過三分之一便捷、快速、不沾染原始車身顏色、還能起到保護作用的貼膜改色已經成為了眾多車主追尋的主流改色方式。但是正是由於其便捷性,被很多不法分子鑽了空子,所以目前我國的政策明確標註,貼膜改色面積只有不超過三分之一時,才能夠成功備案,合法上路。
  • 掌握費曼學習技巧,從知道到真正理解
    將一個概念寫在一頁紙的最上方,然後將有關這個概念的一切理解都寫在下面,不斷補充,最後對這個概念徹底理解。這句話是什麼意思呢?我們看到聽到過很多概念,我們以為知道這個概念的含義。但事實上,我們只是知道這個概念的名字。對於這個概念本身代表的真正含義知之甚少。費曼講過一個故事,是他小時候他的同學問一個鳥叫什麼。
  • 材質、細節、尺寸、重量,一文搞懂!
    今天,小編帶你一文搞懂~行李箱買多大的呢?這個問題其實決定權不完全在我們這裡。所以,建議先閱讀英國/澳洲和國內常見航空公司對行李箱的限制,然後再選購行李箱。不知何時以Rimowa為首的鋁鎂合金和聚碳酸酯材料的硬殼箱開始流行起來,小編也曾跟風買過一個,好看是好看,但是首先你要面臨的問題就是——不能裝!
  • 10天搞定線性代數,1年學習4年課程:3個步驟,讓你學會學習
    文末有思維導圖,建議收藏!哈嘍,大家好,我是阿胖,今天來與你聊聊學習這件事一、事跡比名字更出彩斯科特揚,這個人你認識嗎?是不是不認識?不認識就對啦,他的事跡遠遠比他的名字更出彩他從高中開始放學後就幾乎不學習,儘管如此,他還是以全班第2名的成績畢業。
  • 小偏方幫你輕鬆搞定
    小偏方幫你輕鬆搞定 時間: 2017-04-05 10:22  來源: 求醫網   編輯: 萌萌 體癬病在我們的生活中十分常見,它的存在嚴重的影響了我們的日常工作和生活,稍有不慎體癬病還會傳染,真是令人頭痛不已。
  • 5分鐘搞懂一、二、三點透視
    既然兩點透視都搞定了,三點透視還會難嗎?剛才還有一組邊平行,現在所有邊都造反了,但是還得乖乖地被三隻手(消失點)扯住。看到這裡,你已經能完全明白這三個概念了吧,讓我們再來看一道選擇題——評論區告訴我你的答案和解題思路吧!
  • 碼幫聚合任務平臺是不是輔助接單賺錢?適合單幹還是推廣?
    碼幫聚合任務平臺是不是輔助接單賺錢?適合單幹還是推廣?(邀請碼686868)現在宅在家裡的人越來越多,如果宅在家還能賺錢就更好了,不用出門風吹日曬就能賺到錢是很多人的夢想,在這個網絡時代,這個夢想正在成真!只要你有一部手機,就可以宅在家裡也能賺錢! 當然如果你願意出去地推,可能賺得更多。我說的是什麼項目,它就是碼幫聚合任務平臺。
  • 一文搞懂「正態分布」所有重要知識點
    作者:丁點helper來源:丁點幫你正態分布,這個我們從中學就學過的內容,真有這麼重要嗎?我想,真正學懂統計的人對這一點是不會質疑的,且不談特別高深的統計理論,徹底弄懂正態分布是靈活運用統計學中各種假設檢驗方法、看懂p值,理解均數置信區間的前提。
  • 實用口語:你知道「Interesting」的真正用法嗎?
    新東方網>英語>英語學習>口語>實用口語>正文實用口語:你知道「Interesting」的真正用法嗎?   其實英文口語中就有很多和中文   很類似的「客套話」   它們非常簡單卻不易懂   對話時反應不過來就容易鬧笑話啦   今天我們就一起來看一看這些   有趣的「客套話吧~~   1. Interesting...
  • 靜脈輸液操作,護理英語帶你瞬間搞定它
    但是可能還是有好多小夥伴映像不是很深刻今天偶然看到常州衛生高等職業技術學校王立維老師的一個微課作品非常清晰簡潔的介紹了操作步驟最後還用do re mi歌曲進行總結歸納相信看完後,能夠瞬間幫你搞定靜脈輸液的常用英語表達
  • 三點忠告,幫你搞定射手
    三點忠告,幫你搞定射手射手座就是這個世界的冒險愛好者,探險家他們的心很大大得能裝下整個北半球你好像永遠都無法掌握他們奔騰跳躍的心他們愛你的時候你能感覺到他們的一往無前你變成了他們生命的靶心一切的方向都是為了你他們好像是永遠用不完精力的孩子帶著你在這個多彩的世界走南闖北射手座,如果你和放蕩不羈唯獨愛自由的射手分開了該如何挽回?
  • 一臺格蘭仕烤箱幫你搞定所有!
    那麼問題來了,如何搞定感恩節大餐?畢竟又老又柴的烤火雞不適合中國吃貨的胃,不過可以替換一下嘛,用國產的三黃雞滿足味蕾,這個操作,很吃貨!像這種時候,擁有一臺格蘭仕H8S家用多功能烤箱的你,絕對是感恩節這天最閃耀的大廚。
  • 高中英語閱讀理解的解讀與剖析
    詞彙是組成文章的重要基礎,理解詞彙以及句子的含義,便是我們能讀懂這篇文章、了解這篇文章的思想感情的重要前提。其實詞彙的積累並不可怕,你很容易就可以徵服它。這就涉及到了英語詞彙的積累,詞彙的積累並不是英語單詞的死記硬背,而是把單詞融入到句型之中,在理解語境的基礎之上進行理解背誦。
  • 三個高效思考模型,讓你快速定位關鍵要素,搞定難題
    換言之,和400萬年的圖形解讀史相比,我們只有3000年的文字使用史。大腦在理解文字前,需要先把它翻譯成能夠理解的圖形印象。否則就像盲人摸象一樣,你看到什麼就只能理解什麼。而你沒見過的東西,即便你讀到了文字,你也很難理解。比如:複雜二芳基芴及其聚合物光電材料、醇基傅克聚合反應和納維-斯託克斯方程。
  • 如何理解高溫高壓孔板流量計,一文讀懂它的真正含義
    孔板流量計作為流量測量領域中的強者,它的選型以及安裝成了目前一大難題,所有的流量計選型時,都需要滿足介質、溫度、壓力三個參數,就可以輕鬆解決現場的測量工況了。孔板流量計再來說一下孔板流量計的安裝,很多小夥伴們在安裝時就會犯錯,從孔板流量計常錯的原因來說,有流向安裝反了,電源接錯了等常規失誤,但只要根據說明書來操作就可以輕鬆搞定