本文目的是持续搜集整理个人开发过程中遇到的中文乱码问题,以及可能导致的原因以及解决方法。
js中文乱码
原因及解决方法
原因1:js文件编码与页面编码不一致,或者不支持中文。(感觉表述有问题。。)
解决方法1:使用文本编辑器将js文件转换编码为对应格式,一般为UTF-8。
注:当使用notepad++进行编码转换:通常打开的js文件编号会显示utf-8(无BOM)格式。这时一般选择转为utf-8编码格式即可。但有时候会遇到,即使使转了utf-8,并且用Firefox打开,查看页面属性编码也显示UTF-8,但仍然中文乱码。这时需要新建一个空的js文件(一般创建出来就是UTF-8编码的),再把js代码拷贝进来保存,替换掉原js文件就不会乱码了。
原因2:浏览器编码和js不一致
解决方法2:修改浏览器编码,目前70版本谷歌需要使用扩展插件才能修改,默认的应该是UTF-8。
原因3:tomcat未设置编码或编码设置和js不一致
修改tomcat下的conf/server.xml文件
找到如下代码:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat(默认ISO-8859-1编码)以UTF-8的编码处理get请求。
修改完成后:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
注:虽然网上说Tomcat8之后默认1.8(具体也没去考证),但我使用tomcat9不配置,仍然出现乱码,随意建议都配置一下