
关于解决jsp乱码问题.
1最基本的乱码问题.
这个乱码问题是最简单的乱码问题. 通常会出现新的. 页面编码不一致会造成乱码.
中文问题
我是一个好人
在三个地方编码.
首先,编码格式是jsp文件的存储格式. Eclipse将根据此编码格式保存文件. 并编译jsp文件
,其中包括中文字符.
第二种编码是解码格式. 因为保存为UTF-8的文件被解码为iso8859-1,所以如果有中文,则必须乱码. 还有
它必须是一致的. 第二位的线是没有必要的. 缺省情况下,也使用iso8859-1的编码格式. 所以如果没有
在这一行中,“我是一个好人”也会出现乱码. 它必须是一致的.
第三个代码是控制浏览器的解码方法. 如果先前的解码是一致且正确的,则此编码格式没有关系
. 由于浏览器无法确定要使用的编码格式,因此某些网页显示为乱码. 由于该页面有时嵌入在页面中,因此
浏览器混淆了编码格式. 出现乱码.
2使用Post提交表单后收到乱码的问题

此问题也是常见问题. 这个乱码也是tomcat的内部编码格式iso8859-1搞砸了,也就是说发布了
提交时,如果未设置编码格式,则提交将在iso8859-1中完成,但是接受的jsp将处于utf-8模式
接受. 引起乱码. 因此,下面有几种解决方案并进行比较.
接受参数时进行代码转换
String str = new String(request.getParameter(“ something”). getBytes(“ ISO-8859-1”),“ utf-8”)
;在这种情况下,必须以这种方式对每个参数进行转码. 很麻烦但是您确实可以得到汉字.
B在请求页面的开头,执行请求的编码代码request.setCharacterEncoding(“ UTF-8”),然后提交
内容的字符集设置为UTF-8. 在这种情况下,接受此参数的页面不需要进行转码. 直接使用
String str = request.getParameter(“ something”);您可以获取中文字符参数. 但是每个页面都需要执行这句话.
此方法对投稿也有效. 提交和上传带有get的文件时没有Enctype =“ multipart / form-data”
有效. 这两种乱码的情况将在后面分别说明.
C为了避免在每个页面上写入request.setCharacterEncoding(“ UTF-8”),建议对所有jsp使用过滤器
编码处理. 互联网上有很多例子. 请亲自检查.
3表单获取提交方法的乱码处理方法.
如果使用get方法提交中文,则接受参数的页面也会出现乱码,这种乱码的原因也是tomcat的内部编码格式
由公式iso8859-1引起. Tomcat将使用默认的get编码方法iso8859-1对中文字符进行编码,并在编码后将其附加到url中,从而得到
在接受页面上收到的参数是乱码/.
解决方案:
A使用上面示例中的第一种方法解码接收到的字符,然后进行代码转换.
B Get接受URL提交,并且在输入URL之前已进行了iso8859-1的编码过程. 如果要影响此编码,则需要
将useBodyEncodingForURI =“ true”添加到server.xml的连接器节点
属性配置,可以控制tomcat的汉字编码方法获取,上述属性也用于控制获取提交
使用request.setCharacterEncoding(“ UTF-8”)设置的编码格式进行编码. 因此它会自动编码为utf-8,接受页面
只需正常接受即可. 但是我认为真正的编码过程是tomcat应该基于
maxThreads =“ 150” minSpareThreads =“ 25” maxSpareThreads =“ 75”
enableLookups =“ false” redirectPort =“ 8443” acceptCount =“ 100”
debug =“ 0” connectionTimeout =“ 20000” useBodyEncodingForURI =“ true”
disableUploadTimeout =“ true” URIEncoding =“ UTF-8” />
其中设置的URIEncoding =“ UTF-8”将再次进行编码,但是由于已将其编码为utf-8,因此编码不会更改
它融化了. 如果从URL获得编码,则接收页面将根据URIEncoding =“ UTF-8”进行解码.
4上传文件时解决乱码
上载文件时,表单设置为enctype =“ multipart / form-data”. 以这种方式在流中提交文件.
如果使用apach的上载组件,您会发现很多乱码. 这是因为apach较早的commons-fileupload.jar具有
bug,取出汉字后对汉字进行解码,因为提交了此方法,因此编码会自动使用tomcat默认编码格式iso-8859-1
. 但是,字符出现乱码的问题是: 句号,逗号和其他特殊符号会出现乱码. 如果汉字数为奇数jsp乱码,则会出现乱码
,偶数将正常解析.
解决方案: 下载commons-fileupload-1.1.1.jar此版本的jar已解决了这些错误.
但是,提取内容时,仍然需要将提取的字符从iso8859-1转换为utf-8. 已经可以获取所有正常的汉字和汉字
字符.
关于URL请求的5个Java代码,接受乱码
URL的编码格式取决于上面提到的URIEncoding =“ UTF-8”. 如果设置了此编码格式,则表示所有
URL有中文字符参数,必须对其进行编码. 否则汉字的参数值都是乱码,例如
一个链接Response.sendDerect(“ / a.jsp?name = Zhang Dawei”);直接在a.jsp中使用它
String name = request.getParameter(“ name”)“);您所得到的内容是乱码. 由于规定必须为utf-8,因此此重定向应这样写:
Response.sendDerect(“ / a.jsp?name = URLEncode.encode(” Zhang Dawei“,” utf-8“);只能.
如果您未设置此参数URIEncoding =“ UTF-8”,会发生什么?如果未设置,则将使用默认的编码格式.
iso8859-1. 问题再次出现. 首先是如果参数值的个数是奇数,则可以正常解析,如果个数是偶数
数量
,最后一个字符出现乱码. 另外,如果最后一个字符是英文jsp乱码,则可以正常解析,但可以使用中文标准
点符号仍显示为乱码. 作为权宜之计,如果您的参数中没有中文标点符号,则可以在参数值的末尾添加英文字符
解决乱码问题,然后在获取参数后删除最后一个符号. 您也可以刮擦或使用.
6个脚本代码关于url请求,收到的参数是乱码
该脚本还将控制页面重定向,还将包含其他参数,并接受页面来解析此参数. 如果这样
如果中文字符参数未执行URIEncoding =“ UTF-8”指定的编码过程,则接收页面接收到的中文字符也会出现乱码. 脚本
处理编码很麻烦,必须有一个对应于编码脚本的文件,然后在脚本中调用该方法对汉字进行编码.
7关于在MyEclipse中打开jsp时的乱码
对于现有项目,Jsp文件的存储格式可能为utf-8. 如果新安装了eclipse,则默认情况下将其打开
编码格式为iso8859-1. 因此,jsp中的汉字出现乱码. 这种乱码易于解决,直接进入
在eclipse3.1的首选项中找到general-> edidor,并将文件打开代码设置为utf-8. Eclipse将
使用新的编码格式自动重新打开. 汉字可以正常显示.
关于在Eclipse中打开html页面8,出现乱码
由于大多数页面是由Dreamweaver制作的,因此存储格式与eclipse的识别不同.
通常,在这种情况下,请在eclipse中创建一个新的jsp,直接从Dreamweaver复制页面内容并将其粘贴到jsp中
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-287166-1.html
美国也就是虚张声势
#给烊烊520#1128生日评论