//記得要先 判斷暱稱是否有特殊符號,或者表情, 轉化成資料庫可以儲存的值
string nick = urlencoderutils.transforstr(nickname);
string nick = urlencoder.encode(nick,"utf-8");
具體的封裝類
public
class
urlencoderutils
for(i =
'a'; i <=
'z'; i++
)for
(i =
'0'; i <=
'9'; i++
) dontneedencoding.
set(
'+')
;/**
* 這裡會有誤差,比如輸入乙個字串 123+456,它到底是原文就是123+456還是123 456做了urlencode後的內容呢?
* 其實問題是一樣的,比如遇到123%2b456,它到底是原文即使如此,還是123+456 urlencode後的呢?
* 在這裡,我認為只要符合urlencode規範的,就當作已經urlencode過了
* 畢竟這個方法的初衷就是判斷string是否urlencode過
*/ dontneedencoding.
set(
'-')
; dontneedencoding.
set(
'_')
; dontneedencoding.
set(
'.')
; dontneedencoding.
set(
'*');}
/** * 判斷str是否urlencoder.encode過
* 經常遇到這樣的情況,拿到乙個url,但是搞不清楚到底要不要encode.
* 不做encode吧,擔心出錯,做encode吧,又怕重複了
* * @param str
* @return
*/public
static
boolean
hasurlencoded
(string str)
if(c ==
'%'&&
(i +2)
< str.
length()
)}// 其他字元,肯定需要urlencode
needencode =
true
;break;}
return
!needencode;
}/**
* 判斷c是否是16進製制的字元
** @param c
* @return
*/private
static
boolean
isdigit16char
(char c)
/** * 判斷暱稱是否有特殊符號,或者表情, 轉化成資料庫可以儲存的值
** @param str
* @return
*/public
static string transforstr
(string str)
}catch
(exception e)
}else
return para;
}/**
* 判斷暱稱是否有已經被urlencoder.encode轉化過, 是的話,返回原碼返回
** @param str
* @return
*/public
static string transforcn
(string str)
}catch
(exception e)
}else
return para;
}}
還有乙個判斷方法
public
class
emojiutil
int len = source.
length()
;for
(int i =
0; i < len; i++)}
return
false;}
private
static
boolean
isemojicharacter
(char codepoint)
/** * 過濾emoji 或者 其他非文字型別的字元
* @param source
* @return
*/public
static string filteremoji
(string source)
//到這裡鐵定包含
stringbuilder buf = null;
int len = source.
length()
;for
(int i =
0; i < len; i++
) buf.
(codepoint);}
else}if
(buf == null)
else
else}}
}
之後就是正常的持久化即可
當然還有更好的辦法
mybatis+mysql 儲存emoji表情
微信小程式開發之頭像是Emoji表情的儲存問題
只能儲存3個位元組,而 emoji表情有些需要佔4個位元組。這時就需要我們修改資料庫的編碼格式了。首先,我們新建資料庫時選擇utf8mb4編碼,相應的表中字段也設定成utf8mb4編碼 設定完之後,可以在資料庫 查詢 新建查詢裡執行一下下邊的命令,檢視資料庫的編碼格式是否改成utf8mb4編碼 sh...
解決Mysql儲存微信表情時候的報錯問題
具體修改資料庫編碼的方法如下 window下 my.ini mysql default character set utf8mb4 mysqld character set server utf8mb4 collation server utf8mb4 bin linux下 my.cnf clien...
別被微信頭像的「紅圈1」騙了!
很多手機重度使用者都無法忍受各類即時通訊工具右上角的訊息提示,這其中當然也包括手機上所裝軟體的的更新和提示。可見,雖然僅僅是個 小紅點 卻足以讓 強迫症患者 們抓狂。從這些新訊息頭像的內容來看,不乏海綿寶寶 蠟筆小新 叮噹貓等熱門漫畫人物。而據了解,這些新訊息頭像的製作者是一位生於1992年的江蘇女...