记一次乱码修复

写程序遇到乱码再正常不过了,今天在服务器上解决一个问题如下图:

记一次乱码修复_第1张图片

客户是给这台老服务器加了根内存,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显示也不正常啊:

记一次乱码修复_第2张图片

中文字呢?


直觉5:系统编码

行动5:(正式开始解决战斗)

      cmd--》chcp

返回结果:

 

行动6:看看自己本机正常的情况:

OK,问题找到了!


行动7: (解决)

控制面板->时钟、语言和区域->更改显示语言->管理

找“非Unicode语言”->更改“中文(简体,中国)”

确定,重启系统,正常



【鲜花】【掌声】不绝于耳…………




你可能感兴趣的:(问题修复记录)