多語言字的儲存

2021-09-06 06:04:14 字數 1929 閱讀 6821

ultraedit 另存為utf-8 換行符設定成「預設」格式為:「utf-8 - 無bom」

目錄不同編碼的位元組順序標記的表示

bom —— byte order mark,中文名譯作「位元組順序標記」。在這裡找到一段關於 bom 的說明:

在ucs

編碼中有乙個叫做 "zero width no-break space" ,中文譯名作「零寬無間斷間隔」的字元,它的編碼是 feff。而 fffe 在 ucs 中是不存在的字元,所以不應該出現在實際傳輸中。ucs 規範建議我們在傳輸位元組流前,先傳輸字元 "zero width no-break space"。這樣如果接收者收到 feff,就表明這個位元組流是 big-endian 的;如果收到fffe,就表明這個位元組流是 little- endian 的。因此字元 "zero width no-break space" (「零寬無間斷間隔」)又被稱作 bom。

utf-8 不需要 bom 來表明位元組順序,但可以用 bom 來表明編碼方式。字元 "zero width no-break space" 的 utf-8 編碼是 ef bb bf。所以如果接收者收到以 ef bb bf 開頭的位元組流,就知道這是 utf-8編碼了。windows 就是使用 bom 來標記文字檔案的編碼方式的。

字元u+feff如果出現在位元組流的開頭,則用來標識該位元組流的位元組序,是高位在前還是低位在前。如果它出現在位元組流的中間,則表達零寬度非換行空格的意義,使用者看起來就是乙個空格。從unicode3.2開始,u+feff只能出現在位元組流的開頭,只能用於標識位元組序,就如它的名稱——位元組序標記——所表示的一樣;除此以外的用法已被捨棄。取而代之的是,使用u+2060來表達零寬度無斷空白。

類似windows自帶的記事本等軟體,在儲存乙個以utf-8編碼的檔案時,會在檔案開始的地方插入三個不可見的字元(0xef 0xbb 0xbf,即bom)。它是一串隱藏的字元,用於讓記事本等編輯器識別這個檔案是否以utf-8編碼。對於一般的檔案,這樣並不會產生什麼麻煩。但對於 php來說,bom是個**煩。

php並不會忽略bom,所以在讀取、包含或者引用這些檔案時,會把bom作為該檔案開頭正文的一部分。根據嵌入式語言的特點,這串字元將被直接執行(顯示)出來。由此造成即使頁面的 top padding 設定為0,也無法讓整個網頁緊貼瀏覽器頂部,因為在html一開頭有這3個字元呢!

編碼表示 (十六進製制)

表示 (十進位制)

utf-8

ef bb bf

239 187 191

utf-16(大端序)

fe ff

254 255

utf-16(小端序)

ff fe

255 254

utf-32(大端序)

00 00 fe ff

0 0 254 255

utf-32(小端序)

ff fe 00 00

255 254 0 0

utf-7

2b 2f 76和以下的乙個位元組:[ 38 | 39 | 2b | 2f ]

43 47 118和以下的乙個位元組:[ 56 | 57 | 43 | 47 ]

en:utf-1

f7 64 4c

247 100 76

en:utf-ebcdic

dd 73 66 73

221 115 102 115

en:standard compression scheme for unicode

0e fe ff

14 254 255

en:bocu-1

fb ee 28及可能跟隨著ff

251 238 40及可能跟隨著255

gb-18030

84 31 95 33

132 49 149 51

軟體多語言

locale是指特定於某個國家或地區的一組設定,包括字符集,數字 貨幣 時間和日期的格式等。在windows中,每個locale可以用乙個32位數字表示,記作lcid。在winnt.h中可以看到lcid的組成。它的高16位表示字元的排序方法,一般為0。在它的低16位中,低10位是primary la...

多語言切換

專案中應用到了多語言切換,鞏固一下。貼上 大家一起學習。廢話不多說直接上 1 新增多語言 在res values 下預設有個strings,需要多種語言就來建立幾個strings,values右鍵 new 乙個 values res file file name 就是strings director...

Qt 筆記 多語言

1 使用命令 lupdate no obsolete main.pro 作用 將main.pro檔案內的所有源程式檔案中的被tr 包裝的字串打包成.ts檔案,此檔案可以使用qt的qt linguist開啟並翻譯 2 使用命令 lrelease main.pro 作用 通過.ts檔案生成.qm檔案,此...