
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时进行转码
立即学习“Java免费学习笔记(深入)”;
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都要指定编码方式,否则就和系统环境耦合了。
php中文网,大量的免费Java入门教程,欢迎在线学习!
以上就是java string乱码的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号