———————————————
在設定scan的startrowkey與endrowkey時,經常需要在某個條件字串後面補充出乙個範圍。(singlecolumnvaluefilter也會用到)
比如:我的條件字串是「abc」,scan時我需要將下述內容都囊括到我scan的範圍內。
abc123
abcdabc
abccca
....
這時候我startrowkey使用「abc」即可,上述字串按字典序都比「abc」要大,「abc」串c之後的值是0嘛~
而endrowkey最初我使用了「abc~」,因為我查ascii碼表時『~』是倒數第二個,值為127,足夠大,肯定大於上述串中的1、d、c等字元。
這樣做,在處理英文資料時就足夠了,系統執行正常。
但當我處理中文資料時,中文一般都是以utf-8格式處理的,乙個漢字表示出來類似「0xe6,0xc2,0xe1」。0xe6大於127。所以使用『~』遇到中文必然悲催。
我的解決方法:
使用ultraedit,進入十六進製制編輯模式,將值改為ff。然後回到文字模式,將剛才的字元複製下來。這個字元應該是乙個不可顯示的字元,看著好像兩個空格的長度。
然後在設定endrowkey時
new string(name + " "); //這裡只是示例,引號間就是剛才複製的那個字元。將這個字串作為endrowkey,果然所有的中文字元就囊括在內了。
另外一定要注意:使用hbase api時不要使用str.getbytes將string轉化為byte ,而應該使用bytes.tobytes(str);同樣使用bytes.tostring(bytes);完成逆向轉換。
python中文字串編碼處理
1。字串還是位元組串?我認為,python的字串只能說是位元組串,你甚至可以在裡面存放一張或者乙個二進位制可執行檔案 import types f open d r pic f.read print type pic types.stringtype print pic 如果存在,這段 會顯示tru...
python 中文字串處理 獲得子串
由於python的處理是按照編碼來處理的比如 str 中國年 原始檔編碼格式是utf 8 str 0 len str 1 中國 這是錯誤的 年有三個uft 8編碼,所以還剩2個 所以會出現中國 亂碼,選取字串子串和 長度的操作是對unicode編碼的字串和ascii編碼字串操作進行。這裡就當其為as...
php 中文字串 危險字串處理
在編輯php時常遇到中文亂碼問題。在此將 php在處理中文時,視為 危險字串 避免 中文亂碼的方法 1.將中文字元進行轉碼。通過 iconv 或 mb convert encoding 兩個方法中的乙個對字串進行編碼處理。2.將中文字串進行替換,將中文替換為其它字串 例如以下方法,將中文替換為 下劃...