文字格式ANSI,Unicode等有什麼區別

2021-09-08 11:34:43 字數 1172 閱讀 1720

首先dbcs是亞洲的字符集,包含了ansi,ansi也就是ascii值為0-255之間的字元,當字元為ansi時,存放於檔案中占用的是乙個位元組。如果是非ansi的呢,則占用兩位元組。用vb的asc函式可以很容易得到乙個字元的dbcs值(或是說ansi值吧)

假如乙個字元得到的dbcs值為&h1234,當然,這個值是轉換成了十六進製制的,因為對於磁碟存放來說,一般使用位(bit),即二進位制存放,而顯示位元組呢用十六進製制顯示則非常直觀。存放在檔案中即"12 34"(這是用十六進製制文字編輯器中檢視到的形式)

而unicode是世界性的字符集,幾乎包含了世界上的所有字元,每個字元都有乙個單一的unicode值。unicode值也是占用兩個位元組的。但不同的是它雖然也包含了標準的ansi字元值,但是ansi字元只占用乙個位元組,unicode會自動在ansi值後加入乙個值為0的位元組。比如說乙個 ansi值為&h45的字元,以unicode形式存放則為"45 00"。至於如何用vb得到乙個字元的unicode值,ascw函式可以輕鬆搞定。但是普通的非ansi字元以unicode形式時則是從右存到左的。比如乙個值為&h1234的字元,存為unicode時則為"34 12"

知道了這些有什麼用呢?unicode的意義在於能讓不同環境下的作業系統識別。比如說吧,你在中文的作業系統下使用記事本寫了一篇文字文章。但你要拿到別的環境下的win2k(之所以選win2k,是因為win2k支援unicode,否則用win98只能用外接中文平台才能檢視)下檢視(比如美國的電腦,作業系統為英文,**頁也是美國(win2k有設定**頁)),即使該電腦已經安裝了中文字型,即使用word這樣的編輯軟體開啟也肯定是亂碼一堆。這是為什麼呢?因為英文的win2k作業系統只能識別unicode呀!並不能識別咱們亞洲的dbcs碼呀!

解決方法只要你把它轉換為unicode碼存放就ok了!像utrla edit就能轉換。win2k裡也有**轉換器可以,而win2k下的記事本則可以用另chun為unicode碼。如果你使用的是win9x,則可以自己用vb解決了。unicode碼存放的文字檔案與普通的文字檔案不同之處僅僅是檔案頭加了"ff fe"而已。其他的則是**值不同。只要轉換了字元的**,並在檔案前加上"ff fe"這兩個位元組,就是把這篇中文文章儲存為unicode格式了!轉換成unicode格式後,英文作業系統的機器只要用word開啟你的檔案就能檢視了!(為什麼用word是因為它有字型識別功能。普通記事本只把文字鏈結到系統字型上,而英文系統的預設字型可不是不包含中文的喲!當然就顯示不出來啦)

DOS文字格式轉Unix文字格式Python指令碼

網上一頓查,發現是dos文字格式與unix文字格式有差異的問題。好在ubuntu有dos2unix工具,可以把dos文字格式轉為unix文字格式,使用方法見 但是問題來了,核心原始碼千千萬,不能乙個乙個手動轉吧?所以寫了個python指令碼,這個指令碼的功能是,把當前目錄包括子目錄的所有檔案轉為un...

shell文字格式

linux的shell種類眾多,常見的有 bourne shell usr bin sh或 bin sh bourne again shell bin bash c shell usr bin csh k shell usr bin ksh shell for root sbin sh 等等。不同的...

UGUI 文字格式

先說一種使用 載入text文字的方法 public string loadinfo string path 就是在resources資料夾下,放了乙個儲存為utf 8文字格式,的.txt檔案,然後就可以使用上面方式取到.txt檔案的文字。首行縮排 直接使用網上的取巧辦法,在文字前面加這個東西。jay...