常見的通訊錄都是按首字母來排序的,想象一下你要實現乙個首字母排序的功能,若是全英文,那將會是一件很輕鬆的事情,一般語言層面就會提供排序方法,亦或自己實現也不是難事,那如果存在中文呢?這個時候你就要獲取中文第乙個文字的拼音首字母了,今天聚焦一下如果獲取中文的首字母。
技術要點主要在找到中文和首字母的對映關係,正好gb 2312編碼對所收漢字進行了「分割槽」處理,16-55區為一級漢字,按拼音排序,因此使用gb 2312編碼可以滿足我們的基本需求。
獲取中文字串的第乙個字元
將第乙個字元編碼轉為gbk編碼(gbk編碼是對gb2312編碼的擴充套件,完全相容gb2312-80標準)
獲取第乙個字元的16進製制
將第乙個字元的16進製制轉十進位制
判斷第乙個字元十進位制落在gb 2312的某個字母區間即為某個字母
// 獲取中文字串第乙個首字母
上述完整demo可以戳這裡:demo
主要難點在於gb 2312編碼的結構,不懂的小夥伴可以去了解一下gb 2312編碼。
PHP中文GBK編碼轉UTF 8
iconv 和 mb convert encoding的區別 string mb convert encoding string str,string to encoding mixed from encoding 需要先enable mbstring 擴充套件庫,在 php.ini裡將 exten...
python中文編碼查詢 python中文編碼問題
在python中顯示中文注釋和輸出中文 a 中文 print a 返回錯誤 d python27 python.exe d test 中文.py process started file d test 中文.py line 1 syntaxerror non ascii character xe5 ...
Java 中文字串編碼之GBK轉UTF 8
寫過兩篇關於編碼的文章了,以為自己比較了解編碼了呢?結果今天又結結實實的上了一課。以前轉來轉去解決的問題終歸還是簡單的情形。即iso 8859 1轉utf 8,或者iso 8859 1轉gbk,gb2312之類。這種無損轉換,一行 就搞定。今天遇到了gbk轉utf 8。無論怎麼轉,都是亂碼。一 亂碼...