客户是给这台老服务器加了根内存,N久没重启过的Windows2003操作系统。称啥也没改过,莫名就这样了。
看看,JSP文件上的字不是乱码,从数据库取出来的中文是乱码。
就这幅图,咱直觉能想到哪有问题?
直觉1. 数据库字符集
直觉2. 连接格式编码格式
直觉3. 项目编码格式(其实)
是吧?想到就找,行动如下:
行动1. 数据库是AMERICAN_CHINA.ZHS16GBK
行动2. 连接是NLS_LANG设置成同样的AMERICAN_CHINA.ZHS16GBK
行动3. 项目是编码UTF-8(哈,直觉没用,这文件编码与字符流编码无关)
根据行动3,直觉又来了:
直觉4:是浏览器的呈现编码?
行动4:右键查看编码,选中的是UTF-8(哈,傻啊,页面上呈现的是正常的啊,只是从数据库取出来的乱码)
线索断了
再回头看问题,咦?这Tomcat显示也不正常啊:
中文字呢?
直觉5:系统编码
行动5:(正式开始解决战斗)
cmd--》chcp
返回结果:
行动6:看看自己本机正常的情况:
OK,问题找到了!
行动7: (解决)
控制面板->时钟、语言和区域->更改显示语言->管理
找“非Unicode语言”->更改“中文(简体,中国)”
确定,重启系统,正常
【鲜花】【掌声】不绝于耳…………