永远不知道你的用户会往你的数据库丢什么数据,这次就被客户的商品详情表情符搞死了。
/**
* 进行转码
* @param str
* @return
*/
public static String strChange(String str){
if(str==null){
str="";
}
str= StringEscapeUtils.escapeJava(str);
return str;
}
/**
* 进行反转义
* @param str
* @return
*/
public static String unChange(String str){
if(str==null){
str="";
}
str= StringEscapeUtils.unescapeJava(str);
return str;
}
输入数据库时先进行转码在存入,取出时再转义回原文再输出给前端。
网上有说改数据库编码的(字段编码,表编码,库编码加重启)本人实测没啥效果,也许和我的框架有关。所以后面用了上面的转义办法,效果是有的,但是会将中文转换成Unicode编码,对数据库来说就会比正常的数据要长。记得更改数据库字段类型,例:longtext