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檔案,此...