碰到Tomcat源码运行时控制台乱码的解决方案:
1. Ctrl+N 找到 org.apache.tomcat.util.res.StringManager类
Ctrl+F找到getString(final String key, final Object... args)方法,将代码更改为
public String getString(final String key, final Object... args) {
String value = getString(key);
if (value == null) {
value = key;
}
try{
value = new String(value.getBytes("ISO-8859-1"),"UTF-8");
}catch (Exception e ){
e.printStackTrace();
}
MessageFormat mf = new MessageFormat(value);
mf.setLocale(locale);
return mf.format(args, new StringBuffer(), null).toString();
}
2. Ctrl+N 找到 org.apache.jasper.compiler.Localizer类
Ctrl+F找到getMessage(String errCode)方法,将代码更改为
public static String getMessage(String errCode) {
String errMsg = errCode;
try {
if (bundle != null) {
errMsg = bundle.getString(errCode);
}
} catch (MissingResourceException e) {
}
try{
errMsg = new String(errMsg.getBytes("ISO-8859-1"),"UTF-8");
}catch (Exception e ){
e.printStackTrace();
}
return errMsg;
}
至此控制台输出乱码问题解决