開始之前先講一下漢字編碼到底是個啥?
漢字編碼就是漢字對應於計算機中的編碼儲存,主要有以下幾種常見的漢字字符集編碼:
gb2312編碼:2023年5月1日發布的簡體中文漢字編碼國家標準。gb2312對漢字採用雙位元組編碼,收錄7445個圖形字元,其中包括6763個漢字。
big5編碼:台灣地區正體中文標準字符集,採用雙位元組編碼,共收錄13053個中文字,2023年實施。
gbk編碼:2023年12月發布的漢字編碼國家標準,是對gb2312編碼的擴充,對漢字採用雙位元組編碼。gbk字符集共收錄21003個漢字,包含國家標準gb13000-1中的全部中日韓漢字,和big5編碼中的所有漢字。
gb18030編碼:2023年3月17日發布的漢字編碼國家標準,是對gbk編碼的擴充,覆蓋中文、日文、朝鮮語和中國少數民族文字,其中收錄27484個漢字。gb18030字符集採用單位元組、雙位元組和四位元組三種方式對字元編碼。相容gbk和gb2312字符集。
unicode編碼:國際標準字符集,它將世界各種語言的每個字元定義乙個唯一的編碼,以滿足跨語言、跨平台的文字資訊轉換。
今天主要寫乙個漢字與編碼之間轉換的工具軟體針對於gb2312漢字編碼,如下圖所示
漢字轉換成編碼,需要將漢字先轉換成utf-8編碼,再轉換為標準的gb2312的漢字編碼
**如下
string str = textbox1.text;//獲取文字框中的漢字內容
encoding fromencoding = encoding.getencoding("utf-8");//設定需要轉換的編碼方式
encoding toencoding = encoding.getencoding("gb2312")//設定需要轉換的編碼方式
byte frombytes = fromencoding.getbytes(str);//將漢字內容轉換為utf-8形式
byte tobytes = encoding.convert(fromencoding, toencoding, frombytes);//進行utf-8編碼到gb2312的編碼
foreach (byte mybyte in tobytes)//遍歷整個編碼陣列
從編碼再轉換成漢字內容,相當於反過來進行操作,先去除標準化的形式顯示,只保留具體的編碼,然後從gb2312轉換為utf-8的編碼,再編碼進行解析為漢字內容
**如下
byte frombytes = new byte[textbox1.text.length / 2];//用於儲存漢字編碼內容
try encoding fromencoding = encoding.getencoding("gb2312");//設定需要轉換的編碼方式
encoding toencoding = encoding.getencoding("utf-8");//設定需要轉換的編碼方式
byte tobytes = encoding.convert(fromencoding, toencoding, frombytes);//進行gb2312編碼到utf-8的編碼
string mystr = toencoding.getstring(tobytes);//轉換為漢字內容
textbox2.text = mystr;//進行顯示
}catch
後續有時間的話把其他編碼方式也新增上去,後續再修改本文。。。 C 編寫乙個簡單串列埠通訊上位機
1.在 c 中,命名空間提供了一種組織相關類和其它型別的方式。我理解的命名 空間就是乙個貨櫃,裡面可以裝下很多類和方法。其實我們也可以認為所謂的 命名空間相當於 c 語言中的標頭檔案,只不過 include 變為了 using namespace。具 體的書寫規範見 清單 第 1 到 7 行 全都為...
開發乙個自己的 CSS 框架(五)
這一期我們繼續完成我們的網格布局 通過乙個 佔位符,來減少 輸出量。container padding right 15px padding left 15px margin right auto margin left auto container width 100 extend contain...
c 開發乙個簡單的BHO
最近公司程式需要嵌入各個瀏覽器的外掛程式。首先需要支援的是ie的外掛程式。又稱為bho browser helper object 瀏覽器輔助物件 比起在c 中開發bho,c 確實是更加簡單 bho主體程式時urltrack類。而這個類我們需要從介面iobjectwithsite繼承。iobject...