问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java web乱码怎么解决

发布网友 发布时间:2022-04-30 17:44

我来回答

2个回答

热心网友 时间:2022-04-14 08:29

最基本的乱码问题
这个乱码问题是最简单的乱码问题。一般新会出现。就是页面编码不一致导致的乱码。
Html代码:
<%@ page language="java" pageEncoding="UTF-8"%>? <%@ page contentType="text/html;charset=iso8859-1"%>? <html>? <head>? <title>中文问题</title>? <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">? </head>? </head>? <body>? JSP中文编码问题解决方法详解? </body>? </html>?

三个地方的编码
第一个地方的编码格式为jsp文件的存储格式。Ecljpse会根据这个编码格式保存文件。并编译jsp文件,包括里面的汉字。
第二处编码为解码格式。因为存为UTF-8的文件被解码为iso8859-1,这样如有中文肯定出乱码。也就是必须一致。而第二处所在的这一行,可以没有。缺省也是使用iso8859-1的编码格式。所以如果没有这一行的话,“我是个好人”也会出现乱码。必须一致才可以。
第三处编码为控制浏览器的解码方式。如果前面的解码都一致并且无误的话,这个编码格式没有关系。有的网页出现乱码,就是因为浏览器不能确定使用哪种编码格式。因为页面有时候会嵌入页面,导致浏览器混淆了编码格式。出现了乱码。
表单使用Post方式提交后接收到的乱码问题
这个问题也是一个常见的问题。这个乱码也是tomcat的内部编码格式iso8859-1在捣乱,也就是说post提交时,如果没有设置提交的编码格式,则会以iso8859-1方式进行提交,接受的jsp却以utf-8的方式接受。导致乱码。既然这样的原因,下面有几种解决方式,并比较。
a. 接受参数时进行编码转换

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");
即可得到汉字参数。但每页都需要执行这句话。这个方法也就对post提交的有效果,对于get提交和上传文件时的enctype="multipart/form-data"是无效的。稍后下面单独对这个两个的乱码情况再进行说明。
c. 为了避免每页都要写request.setCharacterEncoding("UTF-8"),建议使用过滤器对所有jsp进行编码处理。这个网上有很多例子。请大家自己查阅。
表单get提交方式的乱码处理方式
如果使用get方式提交中文,接受参数的页面也会出现乱码,这个乱码的原因也是tomcat的内部编码格式iso8859-1导致。Tomcat会以get的缺省编码方式iso8859-1对汉字进行编码,编码后追加到url,导致接受页面得到的参数为乱码/、。
解决办法:
a. 使用上例中的第一种方式,对接受到的字符进行解码,再转码。
b. Get走的是url提交,而在进入url之前已经进行了iso8859-1的编码处理。要想影响这个编码则需要在server.xml的Connector节点增加useBodyEncodingForURI="true"属性配置,即可控制tomcat对get方式的汉字编码方式,上面这个属性控制get提交也是用request.setCharacterEncoding("UTF-8")所设置的编码格式进行编码。所以自动编码为utf-8,接受页面正常接受就可以了。但我认为真正的编码过程是,tomcat又要根据

<Connector port="8080"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”来进行解码的。
上传文件时的乱码解决
上传文件时,form表单设置的都是enctype="multipart/form-data"。这种方式以流方式提交文件。如果使用apach的上传组件,会发现有很多乱码想象。这是因为apach的先期commons-fileupload.jar有bug,取出汉字后进行解码,因为这种方式提交,编码又自动使用的是tomcat缺省编码格式iso-8859-1。但出现的乱码问题是:句号,逗号,等特殊符号变成了乱码,汉字如果数量为奇数,则会出现乱码,偶数则解析正常。
解决方式:
下载commons-fileupload-1.1.1.jar 这个版本的jar已经解决了这些bug。但是取出内容时仍然需要对取出的字符进行从iso8859-1到utf-8转码。已经能得到正常所有汉字以及字符。
Java代码关于url请求,接受参数的乱码
url的编码格式,取决于上面所说的URIEncoding=”UTF-8”。如果设定了这个编码格式,则意味着所有到url的汉字参数,都必须进行编码才可以。否则得到的汉字参数值都是乱码,例如一个链接:

Response.sendDerect(“/a.jsp?name=玫瑰妮子”);
而在a.jsp里面直接使用 String name = request.getParameter("name");

得到的就是乱码。因为规定了必须是utf-8才可以,所以,这个转向应该这样写:

Response.sendDerect(“/a.jsp?name=URLEncode.encode(“玫瑰妮子”,”utf-8”);才可以。
如果不设置这个参数URIEncoding=”UTF-8”,会怎么样呢? 不设置则就使用了缺省的编码格式iso8859-1。问题又出来了,第一就是参数值的个数如果是奇数个数,则就可以正常解析,如果使偶数个数,得到最后字符就是乱码。还有就是如果最后一个字符如果是英文,则就能正常解析,但中文的标点符号仍出现乱码。权宜之计,如果您的参数中没有中文标点符号,则可以在参数值最后加一个英文符号来解决乱码问题,得到参数后再去掉这个最后面的符号。也可以凑或使用。
脚本代码关于url请求,接受到的参数乱码
脚本中也会进行页面转向的控制,也会涉及到附带参数,并在接受页面解析这个参数的情况。如果这个汉字参数不进行URIEncoding=”UTF-8”所指定的编码处理,则接受页面接受到的汉字也是乱码。脚本处理编码比较麻烦,必须有相应的编码脚本对应文件,然后调用脚本中的方法对汉字进行编码即可。
关于jsp在MyEclipse中打开的乱码问题
对于一个已经存在的项目,Jsp文件的存储格式可能是utf-8。如果新安装的eclipse,则缺省打开使用的编码格式都是iso8859-1。所以导致jsp里面的汉字出现乱码。这个乱码比较容易解决,直接到eclipse3.1的偏好设置里面找到general-〉edidor,设置为您的文件打开编码为utf-8即可。Eclipse会自动重新以新的编码格式打开。汉字即可正常显示。
关于html页面在eclipse中打开出现乱码情况
由于大部分页面都是由dreamweaver制作,其存储格式跟eclipse的识别有差别导致。一般这种情况,在eclipse中新建一个jsp,直接从dreamweaver复制页面内容粘贴到jsp即可。

热心网友 时间:2022-04-14 09:47

统一使用UTF-8

、、、、、 如果是jsp和Servlet,使用过滤器,设置成utf-8。。。。。。。。JSP的头,也设定成UTF-8

是框架,就全设定成utf-8 。。。。。追问都设置了,但还是没变

javaweb怎么处理中文乱码问题

采用相同的格式去接收(ISO-8859-1),然后用能解析的编码(utf-8)去转换。这样我们就能得到能兼容中文的格式了。这样处理之后发往前台。注意:发往前台的时候也需要设置一下 resp.setContentType("text/html;charset=utf-8");//设置页面的字符编码,解决界面显示中文乱码的问题 protected void service(...

java web工程里面中文乱码了

java web工程出现中文乱码可以有如下解决方案:1、项目文本文件默认编码:【右击项目】->【Properties】->【Resource】->【Text file encoding】2、文件默认编码:默认使用项目的默认编码:【右击文件】->【Properties】->【Resource】->【Text file encoding】3、 JSP 文件编码:【右击文件】->【Propertie...

javaweb怎么处理中文乱码

(1)response乱码问题 解决方法:在网上很有效的解决方法是添加:response.setCharacterEncoding("UTF-8");解决不了,后来又搜到一条解决方法是:response.setContentType("text/html;charset=utf-8");或者 response.setHeader("content-type","text/html;charset=UTF-8");告诉浏览器用utf-8解析。(...

java web乱码怎么解决

解决方式:下载commons-fileupload-1.1.1.jar 这个版本的jar已经解决了这些bug。但是取出内容时仍然需要对取出的字符进行从iso8859-1到utf-8转码。已经能得到正常所有汉字以及字符。Java代码关于url请求,接受参数的乱码 url的编码格式,取决于上面所说的URIEncoding=”UTF-8”。如果设定了这个编码格式,...

Javaweb返回给Android客户端json中文字符乱码

JavaWeb的各种中文乱码终极解决方法:一、Servlet输出乱码 1. 用servlet.getOutStream字节流输出中文,假设要输出的是String str ="测试中文"。1.1 若是本地服务器与本地客户端这种就不用说了,直接可以out.write(str.getBytes())可以输出没有问题。因为服务器中用str.getBytes()是采用默认本地的编码...

如何解决Java WEB应用中的乱码问题

数据在这四个重要环节中进行传输时,都将以指定的编码方式进行编码或解码。如果处理不当就会出现乱码问题。用户端的处理 当用户端发出一个HTTP请求时,一个如下格式的数据将发送给服务器端:<request-line <headers<CRLF[<request-body<CRLF]关于HTTP请求的格式,可以在HTTP协议与HTML表单(再谈GET与POST...

java解决中文乱码转码

在Java Web应用程序中,可以通过在response对象中设置Content-Type属性,指定字符编码方式为UTF-8,以确保浏览器正确显示中文。总之,解决Java中的中文乱码问题需要注意源代码文件、文件读写和Web应用程序等方面的编码方式设置,确保在相同的环境中使用相同的编码方式。

java后台数据库中的表中的字段是英文使用过程中全部使用英文 只有输出...

首先出现乱码大家都知道是中文字符转换的原因,那么到底哪些地方需要设置编码这就是需要探究的问题。楼主用的是java web,所以总结有以下几点:第一。jsp页面。。jsp页面有三个可以设置编码的地方,而我们一目了然能看到的有2处,分别是头部声明里的charset=UTF-8和pageEncoding="UTF-8" 这里编码我暂时...

java问题

解决方式: 下载commons-fileupload-1.1.1.jar 这个版本的jar已经解决了这些bug。但是取出内容时仍然需要对取出的字符进行从iso8859-1到utf-8转码。已经能得到正常所有汉字以及字符。5.Java代码关于url请求,接受参数的乱码 url的编码格式,取决于上面所说的URIEncoding=”UTF-8”。 如果设定了这个编码...

在java中怎样处理中文乱码的问题?(有几种处理方式)

读取文件的时候如果是用的read方法(字节流),碰到中文输出就是乱码,然后存储的时候设置下编码为GBK或者是UTF-8形式即可,可以有效的解决乱码问题。可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。BufferedReader bre = null;try { String file = "D:/test/test.txt...

java文件乱码怎么解决 javaweb数据库乱码 javaweb模糊查询代码 javaweb设置编码 web前端代码网页显示乱码 java页面乱码 java处理乱码 java如何处理乱码 java出现中文乱码
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...QQ可以正常用,但是面对面视频游戏就没有视频了 面对面视频游戏世界怎么玩不了啦 面对面视频游戏世界我有视频怎么看不到 面对面视频游戏世界视频怎么不能用啊 ...的9158摄像头没毛病 可是就显示不出头像 说是请打开9158虚拟视频 怎么添加9158虚拟视频的默认图片 面对面视频游戏世界摄像头无法显示视频 报名教师编制的时候,自己是美术教师资格证,可以报名语文和英语吗? 教师编制可以考非专业吗? 农行掌上银行,没有输指纹,别人会盗用吗 山寨苹果5刷机包怎么刷机 安逸花安逸花,不是这出问题就是那出问题的,不是失败啊就是被退回啊 要么借的时候明明有额度却显示额度 山寨苹果手机到底能不能刷机? 名牌家电网的介绍 苹果手机买假了怎么办? 安逸花有额度提了又退回什么回事? 安逸花借款提示手速不够快喔,好几亿被抢走了,请明日再来,什么意思啊? 安逸花我一直是3000循环额度,今天看了上面写了4000循环额度,那1000哪去了,我没有借那么多 为什么我的安逸花借钱显示的是 手速太慢 明日再来 ug表达式怎么输入初中数学公式 安逸花提现未入账 但是额度少了 什么时候可以入账 提示下月几号还款已经有了 怎么回事? 在UG中,表达式Y=sqrt(a-0.5*sin(2*a))怎么输入?a为0--360 安逸花一直提示手慢好几亿被抢走明天再来,怎么办? UG编辑表达式 为什么安逸花打电话来叫你提现说马上给我提 UG中表达式中带+号的怎么弄啊 怎样在ug里创建下面表达式 安逸花本月应还2000千元,可以先还1500元吗? ug8.5按用户定义怎么建立表达式 UG表达式怎么用啊 买到假苹果想换系统怎么换 电动车电瓶长久不使用,要不要充满电 我买了个高仿苹果手机,是安卓系统,我想刷机,可以刷成苹果系统吗 JavaWeb项目使用Proguard混淆问题 电动车,如果不骑要充电吗? javaweb项目如何混淆打包 求教Java web项目代码混淆,网上教程用proguard各种报错,有没有大神教我怎么配置 电动车可以长时间放置不充电吗?如果不使用也要充电,多久充一次? 电动车不骑电瓶要多久充一次电 怎么刷机假苹果 电动车电池长时间不用要充电吗 电动车骑了一次没用多少电但暂时不骑用不用充电。 苹果怎么刷机? Java Web 乱码 求解决方案 在javaweb中经常看到方法体内声明this.XXX=XXX; 方法外有声明过private 函数名 XXX之类的 新电动车电池果停一段时间不用电池用不完需要充么? java web 能解决什么问题 电动车长时间不用电瓶不充电会怎样? javaweb项目如何只能在特定的机器上部署启动 javaweb 程序怎么知道放在哪一个服务器IP 上运行了?