java页面中文乱码的解决办法

在页面提交到tomcat乱码 解决方法是在tomcat/conf/server.xml中进行配置
以tomcat6.0.32为例,需将以下代码:
Xml代码


代码如下:

<Connectorport="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

改为:
Xml代码


代码如下:

<Connectorport="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"URIEncoding="UTF-8"/>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />

如果tomcat前端有Apache或是Nginx转发,则还需将:
Xml代码


代码如下:

<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

改为:
Xml代码


代码如下:

<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"URIEncoding="UTF-8"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />

中文url乱码在这里介绍一种解决方法,可以在任何应用部署环境下通用。此方法分两步:
1、在客户端用escape(encodeURIComponent(fieldValue))方法编码,例如:


代码如下:

title=escape(encodeURIComponent(title)); //这是js里的函数
url="<%=request.getContextPath()%>/print/printList!printTable.action?title="+title;

2、在服务端用java.net.URLDecoder.decode(getRequest().getParameter("title"),"UTF-8"),进行解码。

要在这两个url地址中传中文,必须加编码,然后再解码。


代码如下:

编码:encodeURI(encodeURI("包含中文的串"))
解码:java.net.URLDecoder.decode("需要解码的串","utf-8");

JSP页面乱码通常只要在页面开始地方用下面代码指定字符集编码即可。如果还不行,那么请用下面这句话来转换


代码如下:

str=new String(str.getBytes("ISO-8859-1"),"页面编码方式");

JAVA在网络传输中使用的编码是"ISO-8859-1",故在输出时需要进行转化,如:


代码如下:

String str=new String(str.getBytes("开发环境编码"),"ISO-8859-1");

经过网络编码后的中文,要正确显示在页面上必须要用类似于


代码如下:

Stirng str=new String(str.getBytes("ISO-8859-1"),"开发环境编码");

这样的方式来解码

(0)

相关推荐

  • java压缩zip文件中文乱码问题解决方法

    通常用java来打包文件生成压缩文件后,有如下两个地方会出现乱码 : 1.内容的中文乱码问题,这个问题网上很多人给出了解决方法,主要有两种方法:一是修改sun的源码:另一个是使用开源的类库org.apache.tools.zip.ZipOutputStream和org.apache.tools.zip.ZipEntry,这两个类ant.jar中有,可以直接下载使用即可,毫无疑问,选择后者更方便 2.压缩文件注释的中文乱码问题:zos.setComment("中文测试");这个问题网上对

  • java中Filter过滤器处理中文乱码的方法

    注意问题:在学习用selvert的过滤器filter处理中文乱码时,在filter配置初始化时用了utf-8处理中文乱码,而在提交的jsp页面中却用了gbk.虽然两种都可以出来中文乱码,但是却造成了处理乱码的格式不一致.所以编译出错. 解决方法:所有地方都用utf-8或gbk 复制代码 代码如下: //过滤器类CharactorFilter.jsppackage cn.com.Filter; import java.io.IOException; import javax.servlet.Fil

  • JAVA POST与GET数据传递时中文乱码问题解决方法

    做了N年的java开发从没有自己写过一个网站,最近乱忙活弄了一个企业家宣传网站. 跟大家一样遇到了中文字符集乱码问题,为了大家能少走一些弯路,所以在此分享一下即简单又实用的解决方法. 1. POST 数据传递 接收页 复制代码 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.setCharacterEnco

  • 解决javaWEB中前后台中文乱码问题的3种方法

    中文乱码问题真的是一个很棘手的问题,特别是从前台传到后台之后,都不知道问题出在哪里了.现在分享解决javaWEB中前后台中文乱码问题的3种方法. 方法一: tomcat的自带编码是ISO-8859-1的格式,是不兼容中文的编码的.所以我们从后台接收的时候要注意. 采用相同的格式去接收(ISO-8859-1),然后用能解析的编码(utf-8)去转换.这样我们就能得到能兼容中文的格式了.这样处理之后发往前台.注意:发往前台的时候也需要设置一下 resp.setContentType("text/ht

  • java中常见的中文乱码总结

    乱码现象产生的原因:由于编码方式的不同,才会出现乱码的情况. 哪里会产生乱码:1.页面  2.url地址  3.数据库乱码  4.数据提交(form,ajax)  5.开发工具 怎么解决: 1.统一开发工具的编码设置 2.设置应用服务器的编码方式,如:端口号,编码方式 3.数据库本身的编码方式 4.强制设置request和response的数据编码方式(同时也可以采用过滤器的方式拦截所有的编码方式) 5.采用代码方式强转数据编码方式(UrlEncode.encode("你好",&quo

  • Java 解决读写本地文件中文乱码的问题

    Java 解决读写本地文件中文乱码的问题 前言: 在用Java程序进行读写含中文的txt文件时,经常会出现读出或写入的内容会出现乱码.原因其实很简单,就是系统的编码和程序的编码采用了不同的编码格式.通常,假如自己不修改的话,windows自身采用的编码格式是gbk(而gbk和gb2312基本上是一样的编码方式),而IDE中Encode不修改的话,默认是utf-8的编码,这就是为什么会出现乱码的原因.当在OS下手工创建并写入的txt文件(gbk),用程序直接去读(utf-8),就会乱码.为了避免可

  • java 页面url传值中文乱码的解决方法

    中文问题,是在应用中常常遇到的问题. 这将涉及到字符解码操作,我们在应用中常常会用new String(fieldType.getBytes("iso-8859-1"), "UTF-8");等类似的方法去解码.但这种方式受具体应用环境限制,往往在应用部署环境发生改变时,还会出现中文乱码. 在这里介绍一种解决方法,可以在任何应用部署环境下通用.此方法分两步: 1.在客户端用escape(encodeURIComponent(fieldValue))方法编码,例如: 复

  • java 逐行读取txt文本如何解决中文乱码

    java读取txt文本中如含有中文,可能会出现乱码,解决方案是: 1.要统一编码,java工程的编码,txt文本编码,java工程中的java文本编码都统一为utf-8: 2.利用 InputStreamReader(new FileInputStream(fileUrl), "utf-8")将文本再次设置为utf-8 3.具体代码如下 复制代码 代码如下: InputStreamReader isr; try { isr = new InputStreamReader(new Fil

  • java中form以post、get方式提交数据中文乱码问题总结

      一:form在前台以post方式提交数据: 浏览器将数据(假设为"中国")发送给服务器的时候,将数据变成0101的二进制数据(假设为98 99)时必然要查码表,浏览器以哪个码表打开网页,浏览器就以哪个码表提交数据.数据到达服务器后,数据(98 99)要封装到request中,在servlet中调用Request的getParameter方法返回的是字符串("中国"),方法内部拿到数字后要转成字符,一定要查码表,由于request的设计者是外国人,所以默认查的是他

  • Java解决通信过程的中文乱码的问题

     Java解决通信过程的中文乱码的问题 前言: Java的编程中,经常会碰到汉字的处里及显示的问题,比如一大堆乱码或问号. 这是因为JAVA中默认的编码方式是UNICODE,而中国人通常使用的文件和DB都是基于GB2312或者BIG5等编码,故会出现此问题. 如果文件一打开就乱码,可以通过修改软件的编码或者修改文件的编码就可以觉得这个问题.而若是在java的通信中,或者数据库操作之类的其他软件进程通信时,就容易产生乱码. 1.在网页中输出中文. JAVA在网络传输中使用的编码是"ISO-8859

随机推荐