byte[] 与String 转换出乱码问题

         接口数据传输时经常把字符串转成byte[] , 经过Base64编码处理。 这里遇到一个问题, 转换后中文乱码。(开发环境正常,生产环境乱码)


   
   
  1. String localChartSet = System.getProperty( “file.encoding”);
  2. System.out.println( “localChartSet>>>>”+localChartSet); //查看本地默认字符集
  3. String str = “aaaa中文的”;
  4. byte[] gbkbt = str.getBytes( “GB2312”);
  5. byte[] utfbt = str.getBytes( “utf-8”);
  6. byte[] bt = str.getBytes();
  7. String gbkstr= new String(gbkbt, “GB2312”); //string 与byte[] 转换时字符集要保持一致
  8. String utfstr= new String(utfbt, “utf-8”);
  9. str= new String(bt);
  10. System.out.println( “gbkstr>>>>”+gbkstr);
  11. System.out.println( “utfstr>>>>”+utfstr);
  12. System.out.println( “str>>>>”+str);
  13. gbkstr= new String(gbkbt, “utf-8”); //转换时字符集要保持一致 否则中文会出乱码
  14. utfstr= new String(utfbt, “GB2312”);
  15. str= new String(bt, “GB2312”);
  16. System.out.println( “gbkstr>>>>”+gbkstr);
  17. System.out.println( “utfstr>>>>”+utfstr);
  18. System.out.println( “str>>>>”+str);
         
new String(gbkbt, "GB2312");   //<span style="font-size:18px;">为了防止乱码, 尽量采用这种方式 </span>
   
   

 

猜你喜欢

转载自blog.csdn.net/qq_34531925/article/details/82625105