版权声明
1. 本站文章和资源均来自互联网收集和整理,本站不承担任何责任及版权问题。
2. 相关版权归作者及其公司所有,仅供学习研究用途,请勿用于商业目的。
3. 若侵犯您的版权,请发邮件至webmaster@ishare1.cn联系我们,我们确认后将立即删除。

java string乱码
问题出在预发、生产和本地环境的系统编码方式不一致,本地系统默认是UTF-8,而预发、生产环境默认是GBK编码,因此导致出现乱码。
如果不指定编码方式,则默认以系统的编码方式。
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") //查看系统默认编码方式
解决方法如下:
1、使用string时进行转码
System.out.println(str);
String str1 = new String(str.getBytes("ISO-8859-1"), "utf-8");
System.out.println(str1);
String str2 = new String(str.getBytes("gb2312"), "utf-8");
System.out.println(str2);
String str3 = new String(str.getBytes("gbk"), "utf-8");
System.out.println(str3);
2、将乱码的字符串进行转码
String decodeStr=null; decodeStr = URLDecoder.decode(url, "utf-8");
因此在使用String的时候,无论 encode 或者 decode都要指定编码方式,否则就和系统环境耦合了。
爱分享(https://www.ishare1.cn),大量的免费Java入门教程,欢迎在线学习!
爱分享




