byte[] 与String 转换出乱码问题
接口数据传输时经常把字符串转成byte[] , 经过Base64编码处理。 这里遇到一个问题, 转换后中文乱码。(开发环境正常,生产环境乱码)
String localChartSet = System.getProperty("file.encoding");
System.out.println("localChartSet>>>>"+localChartSet); //查看本地默认字符集
String str ="aaaa中文的";
byte[] gbkbt = str.getBytes("GB2312");
byte[] utfbt = str.getBytes("utf-8");
byte[] bt = str.getBytes();
String gbkstr= new String(gbkbt, "GB2312"); //string 与byte[] 转换时字符集要保持一致
String utfstr= new String(utfbt, "utf-8");
str= new String(bt);
System.out.println("gbkstr>>>>"+gbkstr);
System.out.println("utfstr>>>>"+utfstr);
System.out.println("str>>>>"+str);
gbkstr= new String(gbkbt, "utf-8"); //转换时字符集要保持一致 否则中文会出乱码
utfstr= new String(utfbt, "GB2312");
str= new String(bt, "GB2312");
System.out.println("gbkstr>>>>"+gbkstr);
System.out.println("utfstr>>>>"+utfstr);
System.out.println("str>>>>"+str);
new String(gbkbt, "GB2312"); //<span style="font-size:18px;">为了防止乱码, 尽量采用这种方式 </span>
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: JavaScript Array.splice()和slice()的区别
- 下一篇:没有了
