zoukankan      html  css  js  c++  java
  • Java String 乱码

    Java String 乱码问题

    今天在工作的时候,本地能正常work的的代码,推到预发环境却出现了部分数据乱码。一开始是怀疑提供这些数据后端服务用错了编码方式,但是本地能work直接否定了这种怀疑。问题出在预发和本地环境的系统编码方式不一致,本地系统默认是UTF-8,而预发默认是GBK编码,因此导致预发环境出现乱码。

    new String(byte[] bytes)

    如果不指定编码方式,则默认以系统的编码方式。

    
      String csn = Charset.defaultCharset().name();
            try {
                // use charset name decode() variant which provides caching.
                return decode(csn, ba, off, len);
            } catch (UnsupportedEncodingException x) {
                warnUnsupportedCharset(csn);
            }
            try {
                return decode("ISO-8859-1", ba, off, len);
            } catch (UnsupportedEncodingException x) {
                // If this code is hit during VM initialization, MessageUtils is
                // the only way we will be able to get any kind of error message.
                MessageUtils.err("ISO-8859-1 charset not available: "
                                 + x.toString());
                // If we can not find ISO-8859-1 (a required encoding) then things
                // are seriously wrong with the installation.
                System.exit(1);
                return null;
            }
    
    System.getProperty("file.encoding")//查看系统默认编码方式

    因此在使用String的时候,无论 encode 或者 decode都要指定编码方式,否则就和系统环境耦合了。

  • 相关阅读:
    windows上phpstudy配置memcache
    获取全站详情链接,并输出为txt文本
    Linux 宝塔面板免费版开启 waf 防火墙的方法
    where条件多种情况
    网站加https
    git常用命令
    缓存
    Stream转换成byte[] 、将 byte[] 转成 Stream 、Stream和文件的转换、从文件读取 Stream
    C#发送邮件
    Ref和Out的区别
  • 原文地址:https://www.cnblogs.com/Spground/p/9567865.html
Copyright © 2011-2022 走看看