乱码问题集合
打算在这个随笔里记录各种乱码问题。
(一)
现象: idea,tomcat9, 控制台有中文乱码,页面正常引用的js中的中文是乱码(在页面和开发者工具source中看都是乱码)
解决: idea的运行环境Edit Configuration中VM options加上 -Dfile.encoding=UTF-8
(二)
现象:表单提交,后台乱码
解决: form表单属性中加 enctype="multipart/formdata"
分析:
值 | 描述 |
---|---|
application/x-www-form-urlencoded | 在发送前编码所有字符(默认),空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值 |
multipart/form-data |
不对字符编码。 在使用包含文件上传控件的表单时,必须使用该值。 |
text/plain | 空格转换为 "+" 加号,但不对特殊字符编码。 |
(三)
现象:系统1(gbk)调用系统2(urf-8),中文传参乱码
解决:传参前encodeURI(param),接参数用URLDecoder.decode(param)。
分析:encodeURI会对参数中除在uri中有特殊意义的保留字符外的字符进行utf-8转码 encodeURI() - JavaScript | MDN (mozilla.org)