最近做微信公众号的功能,刚开始没注意,拉取用户信息的时候,如果昵称有那种特殊符号,则保存到mysql数据库,其实是对mysql
编码有要求的,一般我们装mysql数据库的话,一般编码都是UTF-8,而要保存这种特殊字符,则需要utf8mb4,如果之前不知道,那现在就要面临着修改mysql数据库编码的问题,由于当时,我是在linux上装数据库的,当时是各种不熟悉,麻烦,所以我不想整mysql数据库了,于是我想了个办法,我把这些特殊字符,转成byte[]数组,然后再把byte数组,转成
字符串数组,然后保存到数据库中
当取出来显示时,再把这个byte[]字符串数组,再转回正常的字符串,
经测试,效果还不错,不用改变原有的utf-8编码
代码如下:
class="java" name="code">
public static String byteArray2StringArray(byte[]data){
StringBuffer sb=new StringBuffer();
for(int i=0;i<data.length;i++){
byte b=data[i];
//System.out.println(b);
if(i==0){
sb.append(b+"");
}else{
sb.append(",").append(b+"");
}
}
String str=sb.toString();
return str;
}
public static String byteStringArray2String(String[]byteArr){
byte[] bis=new byte[byteArr.length];
for(int i=0;i<byteArr.length;i++){
int ii=Integer.parseInt(byteArr[i]);
bis[i]=(byte) ii;
}
String string=new String(bis);
return string;
}