關於字元編碼的一些簡單思考

2022-07-18 06:12:13 字數 932 閱讀 2931

如果按照gbk的編碼規則,該是如何解釋呢?根據前面的規則,efbb符合gbk解碼規則,對應漢語字元"鍩",再接著看 bf,在gbk的首位元組範圍內,而3c明顯不在gbk編碼的尾位元組範圍,如此實際上無法解析出正確的編碼。

但我們已經發現了,如果統一要求我們書寫的**按照gbk的編碼方式儲存,將無法出現bom頭。

二、php**儲存的編碼方式和**執行輸出的編碼的關係

前段提到了**的儲存方式,就是以什麼樣的編碼方式儲存,像以utf-8,gbk,utf-16等等方式,但是**需要執行相關操作,例如讀取和輸出操作,這個地方涉及到幾個問題是

1、utf8編碼儲存的**讀取gbk編碼的輸入,會按照什麼樣的情況解碼?

2、utf8編碼儲存的**輸出字串的時候,輸出的字串是什麼樣的編碼?

這兩個問題,在實驗中發現,如果php指令碼是utf8編碼儲存,那麼它輸出字串後,所輸出的字串會是utf8編碼,如果php指令碼是gbk的編碼儲存,所輸出的字串會是gbk字串。這一點,會說明乙個問題就是。如果再php指令碼中輸出乙個xml,他和xml申明的encoding=utf8還是gbk沒有關係。這個encoding只是告訴呼叫者按照什麼樣的編碼格式去解碼。所以在這個地方要注意指令碼儲存的編碼格式在和xml的encoding不一致的時候,需要做轉碼的工作。

三、substr在php指令碼用使用的問題

substr在php中主要用來擷取字串,如果字串是英文,一般情況下沒有問題,可以數數字元的個數,但是如果是中文,則需要非常小心,首先要判斷輸入的字元是什麼樣的編碼,如果是gbk編碼。漢字都是兩個位元組,而如果是utf8編碼,漢字在3到4個位元組。所以判斷輸入的漢字時候,會非常麻煩,如果必須要判斷,可以試試下面步驟

1、先將輸入字元轉成gbk格式,

2、從開始讀取字串,判斷位元組是否大於0x7f,如果大於0x7f,則讀取兩個位元組,反正讀取乙個位元組。

關於 python 字元編碼的一些認識

使用python,是因為他的美 以下說明常用的字元編碼在python中的應用 s 中國a print repr s 輸出原始字元 是以十六進製制表示 xd6 xd0 xb9 xfaa ansi字串我們最熟悉,英文佔乙個位元組,漢字2個位元組,以乙個 0結尾,常用於txt文字檔案 unicode字串,...

關於SpringIOC的一些思考

ioc是 依賴倒置原則 的乙個特例,說其是特例,就是說其具有 依賴倒置原則 的性質。依賴倒置原則強調的兩點是 上層模組和下次模組都依賴於抽象,二者之間通過這種抽象的東西聯絡在一起 具體可以依賴於抽象,而抽象不能依賴於具體。我認為spring提倡的 基於介面程式設計 就是為了遵循 依賴倒置原則 其中所...

關於sizeof 的一些思考

今天面試被問到sizeof,回來整理一下。1 定義 sizeof是c c 中的乙個操作符 operator 作用就是返回乙個物件或者型別所佔的記憶體位元組數。msdn上的解釋為 the sizeof keyword gives the amount of storage,in bytes,assoc...