如何解决JSP页面显示乱码问题
JSP页面显示乱码
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
<input type = "submit" value = "提交">
</form>
也就是说没有指定form的method属性。而问题就发生在此,Form的默认mothod属性为get.
而get是通过在发送请求的url后面加?然后加参数和值来传递数据的的,编码格式为ASCII.这就要求我们在传递的数据中有非ASCII字符或是超过了100个字符,那么你必须使用method="post",否则就会出现乱码。
</description>
<display-name>JSPConfiguration</display-name>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
<page-encoding>GBK</page-encoding>
FilterChain chain)
throws IOException, ServletException {
// Conditionally select and set the character encoding to be used
Jsp页面中的字符编码方式与乱码解决方法(3)
Jsp页面中的字符编码方式与乱码解决方法(3)Jsp页面中的字符编码方式与乱码解决方法pageencoding="utf-8"contenttype="text/html;charset=utf-8"request.setcharacterencoding("utf-8")response.setcharacterencoding("utf-8")其中前两个只能用于jsp中,而后两个可以用于jsp和servlet中。
1、pageencoding="utf-8"的作用是设置jsp编译成servlet原代码文件时所使用的编码。
jsp在服务器上是要先被编译成servlet的类文件的。
pageencoding="utf-8"的作用就是告诉jsp编译器在将jsp文件编译成servlet为文件时使用的编码。
通常,在jsp内部定义(指在 <%%>块内定义的)的字符串或直接作为html输出(指直接在jsp文件中输写的html中文内容)的字符串出现乱码时,很多都是由于该参数设置错误引起的。
例如,你的jsp文件是以utf-8为编码保存的(在eclipse 选中jsp文件,右键点属性就可以更改保存该jsp的编码方式),而在jsp中却指定pageencoding="gbk"(或不指定时使用操作系统默认的编码方式,即也为gbk),就会引起jsp内部定义的字符串为乱码,这时当我们用文本编辑打开tomcat生成的jsp所对应的servlet类文件时,我们发现就是乱码。
另外,该参数还有一个功能,就是在jsp中不指定contenttype属性,也不使用response.setcharacterencoding方法指定编码方式时,服务器响应的编码方式以及浏览器的编程方式(ie中可以通过菜单“查看-->编码”来看查浏览目前的编码方式)就是此时pageencoding指定的编码方式。
jsp页面传值中文乱码 网页乱码 jsp过滤器过滤乱码等乱码处理办法
一、jsp页面间传值中文乱码问题解决办法<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%> <form action="b.jsp">name:<input type=text name=name><input type=submit></form>b.jsp页面内容:<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%> <%String name=request.getParameter("name");%><body><%=name%></body>现象:中文乱码,比如“??????”解决方法如下:方法一:1. 在b.jsp中把pageEncoding="GB2312"改为pageEncoding="ISO885Array-1"虽然这样b.jsp页面显示的内容还是乱码,但是不是那种“??????”的乱码,而是一些特殊字符2. 然后在浏览器中查看菜单中修改成GB2312的编码,这时乱码就显示中文了。
3. 但是这种方法是不可行的。
方法二:( 已经验证可行)1. 在b.jsp中把String name=request.getParameter("name");修改为String name=new String(request.getParameter("name").getBytes("ISO-885 Array-1"),"GB2312");2. 这时再在页面上显示,则就是中文了。
乱码问题解决方案
乱码问题解决方案1. 名词解释及其作用1. contentType: <%@ page contentType="text/html; charset=UTF-8"%>2. pageEncoding:<%@ page pageEncoding="UTF-8"%>3. html页面charset:<META http-equiv="Content-Type" content="text/html; charset=UTF-8">4. setCharacterEncoding:request.setCharacterEncoding(),response.setCharacterEncoding()5. setContentType:response.setContentType()6. setHeader: response.setHeader()7. jsp页面编码: jsp文件本身的编码8. web页面显示编码:jsp的输出流在浏览器中显示的编码9. web页面输入编码: 输入框输入的字体编码10. web服务器输入的请求流: web Server相应浏览器的请求数据11. web服务器输出的响应流: web Server相应浏览器的输出数据2. 他们之间的相互影响和作用域,以及先后作用顺序1. pageEncoding: 只是指明了JSP 页面本身的编码格式,跟页面显示的编码没有关系;容器在读取(文件)或者(数据库)或者(字符串常量)时将起转化为内部使用的Unicode,而页面显示的时候将内部的Unicode转换为contentType指定的编码后显示页面内容;如果pageEncoding属性存在,那么JSP页面的字符编码方式就由pageEncoding决定,否则就由contentType属性中的charset决定,如果charset也不存在,JSP页面的字符编码方式就采用默认的ISO-8859-1。
JSP中文乱码问题及解决方法
中文 乱 码 问题 。原 因主 要有 两点 .第 一是 J P文件 和 文 变成 乱码 。 决方 法如 下 : S 解 在数 据库 连接 字符 串 中插 入 数 据 时 加 入 编码 字 符 集 Sr gU l " b : le e: tn r j c qsr r/ i = d s v / Jv aa本身 编译 时产 生的乱 码 问题 。第 二是 Jv aa程序 与
<fl r / t > i e
< itr ma p n > fl - p i g e
< h r a > i f e-n me
< r—p t r > * u l p t m> u l a t n / < r- a t e / e
文乱 码 的问题 。 能一 直 困扰 着 大家 。 可 那是 什 么原 因会
程 中 。 用 的编码 方式 与源 文件 的编码 方式 不 相 同 . 使 就 会 出现 中文 乱码
rso s. to t tye” x hr ; astG K” ep ne eC ne T p (t t tl hre= B ) s n e / ac ;
"B ) G K”;
3 . 数据库 中读取 的数 据是乱码 4从 3 常见 中文 问题及 其解 决方 法 、 当从 数 据 库 里 的 表 读 取 数 据 时 发 现 读 到 的 是 乱 J P动 态 网站开 发 中 。 S 出现 中文乱 码 主要 可 以分为 码 . 是 因为 数据 类 型是 vrh r和 t t 型造 成 中文 那 aca e 类 x 以下 4种 情 况 :S J P页面 显示 的 乱码 . 单 提 交 的 中文 乱码 . 到这种 问题 可 以用 如下 方法 解决 : 果是 v r 表 遇 如 a- 是 乱码 , 据库 连接 出现乱 码 。 数 从数 据 库 中读 取 的数据 ca 类 型 可把 它 设 为 bnr hr iay属 性 就 可 以解 决 中文 问 是 乱码 。 题 。 果是 t t 型 就要 用个 编码 转换 类来 处 理 , 如 e 类 x 方法 31 S . J P页 面里 的中文 内容显 示乱码 如下所 示 : 当 J P页 面 里 输 出 的 中 文 内 容 为 乱 码 。 原 因是 S p bi casC n etA o B I ul l ovr tB c s A
jsp页面传值中文乱码问题解决
JSP中文乱码种类
1.JSP文件中文内容显示乱码
2.调用Servlet显示乱码
3.Post表单乱码
4.Get参数乱码
5.存取数据库乱码
1
•通过浏览器调用JSP页面,在客户端浏览器中所有的中文内容出现乱码
•解决方案:替换ISO-8859-1,修改页面编码为UTF-8
调用Servlet显示乱码
•通过浏览器调用Servlet,Servlet在浏览器中显示内容出现乱码
调用Servlet显示乱码
•解决方案:在Servlet使用response在输出内容之前,先执行response.setContentType("text/html;charset=UTF-8")设定输出内容的编码为UTF-8
Post表单乱码
•提交页面表单元素给对应的JSP页面或者Servelt后,接收方出现表单数据中文值乱码
Post表单乱码
•解决方案:在接收POST提交的参数之前,使用request.setCharacterEncoding(“UTF-8")设定接收参数的内容使用UTF-8编码
Get查询字符串乱码
•用Get方式传递参数,中文字符会出现乱码
ISO8859_1ISO8859_1gb2312gb2312
客户端通过GET 提交中文编码问题简单流程:
假如:
客户端和服务器用gb2312
HTTP 传输编码用ISO8859_1
则:
服务器需要指示客户端文档的编码方式
Get查询字符串乱码
•解决方案:Get提交默认是以ISO88591传递,如果容器没有做配置修改,程序则需要手工进行编码转换
存取数据库乱码
•解决方案:在数据库连接参数中设置编码值。
关于JSP乱码问题分析总结
中图分类号 :T 3 文献标 识码 :A 文章 编号 :10- 59 21) 6 00- 2 P 07 99 ( 2 0-26 0 0
问题提 出 基 于 jp的 项 目开 发 中 经 常 遇 到 乱 码 的 问题 ,包 括 : jp s s 自身页面 固定文字 的在浏 览器上表示时的乱码 , 从客户端通过
计 算 机光 盘软 件 与应 用
软件设计开发
C m u e D S f w r n p l c t o s o p t rC o t a e a d A p ia in 2 1 第 6期 0 2年
关于 J P乱码问题分析总结 S
刘 欢 杰 ,魏 静 敏
(. 1 东软 集 团股份有限公 司,沈 阳 10 7 ;2沈阳理 工大学应用技 术学院 ,辽宁抚顺 13 2 1 19 . 112) 摘要 :在利 用 Srl /S 术开发 T a b应 用程序 的时候 经常会遇到乱码的 问题 ,包括服 务器端的提 交 ,以 ev t P技 eJ a We v 及 通过 浏览器的表 示等。 文首先分析 了从 JP到浏览器的执行过程 , 出了. 本 身表 示时产生乱码 的原 因及对策 , 本 S 给 j s p 然后在 此基 础上针对 TP应 用中 出现 的一些常见的乱码 问题 ,并提 出了一些对应的解决方案 ,希望给 开发人 员在编 s
情况下 ,这个值是 IO 8 5 — 。生 成的 J v 文件 的位 置一般 S一89 1 aa 保存在
¥ A A I A H M \ o k C t ln \o a h s \ o t x 名 C T L N — O E w r \ a a a l c l o t C n e t i 的下面 。 实际上 ,生成 的 J P中的内容 是按照 p g E c d n S a e n o i g映射 到 u io e n c d ,并通过 u f 8格式写到 jv t一 a a文件中的 。 < 0n C nec or t ( )把 临时文件 编译 成 c a s文件 。 3 ls o t ”0 0 p o o ol “ T / . ”U I n o i g ’ 2 8 ’ r t c = ”T P 1 1 R E c d n = b ( )c a s文件执行 时,先从 c a s文件 中用 r a U F p r = 4 ls ls ed T 31 " 2 读出字符 串,在 内存中是 u io e n c d 编码 。 m x t D e d r i e " 1 2 aHtHaeSz= 9 " ( )根据 p g E c d n ,把 u io e转化成字节流 。 5 a e n o ig ncd x h a = ’5 ” nD e e : ’5 ’ ( )把字节流输 出到浏览器 ( e等 )中,并根据 jp中 ma T re ds ’ 0 mi S ar Thr ads ’ ’ 6 i s m x D r T r a s ” 5 aSaehed= ” c n e t o T m o t ” 0 0 ” r o n c in i e u= 00 的
如何解决乱码问题总结
</filter-mapping>
3.URL中的中文问题
对于直接通过在URL中传递中文参数,如“http://localhost/a.jsp?str=中文”这样的get请求,在服务端用request.getParameter("name")时返回的往往是乱码。按以上的做法设置Filter没有用,用request.setCharacterEncoding("gbk")的方式,仍然不管用。
httpServletResponse.setContentType("text/html;charset=gbk")),最好同时在JSP页面的head部分加上<meta http-equiv="Content-Type" content="text/html;charset=gbk">
·在每次要输出中文的地方主动转换编码方式,比如要在页面中输入“中文”二字,就可以用以下方式:
<%
String str="中文";
byte[] tmpbyte=str.getBtyes("ISO-8859-1");
str=new String(tmpbyte);
out.print(str);
%>
2.获取表单提交的数据时的中文乱码问题
%>
<html>
<head>
<title>中文Test</title>
<meta http-equiv="Content-Type" content="text/html;charset=gbk">
浅析JSP中文乱码解决方案
是 G 2 1 - 0 的扩 展, 向上 兼容 的 。它包 含 了 2 0 3个汉 字和 8 3个符 B3 28 是 10 8 号, 其编 码 范围是 0 8 4  ̄ O F F , 除高位 O 8 的字位 , x 10 xE E 剔 x0 其所有 字符 都 可 以对应 到 U i o e 2 0 也就 是说 J v n c d . , a a实际 上提供 了对 G K字符 集 的支 B 持 。 G 1 0 0 2 0 ( B 2 ) 在 G K 的基础 上 进一 步扩 展 了汉字 , B 8 3 0 0 G K K B 增加 了 藏 、蒙等 少 数 民族 的 文字 。G K K 从根 本 上解 决 了 字位 不 够 、字 形 不足 B 2 的 问题 。 2如何 解决 中文 乱码 问题 因为大 部分 编程语 言是西方 人发 明的, 以很 多语言的 默 认编码 使用西 方 所 编码 方 式 : 一些 比较 受欢迎 的编程语 言 会考虑 到 国际化 的 问题, 以将 各种 字 所 符都 转换 成包 含所 有字 符 的U io e 那么 如果编 译器 或者 解释器 没办 法获 得 n cd , 代码 中 的编码 信 息, 就可 能造 成错 误 的转 换 。这就 是产 生乱 码 最直 接 的两个 原 因 。在 网页显 示 中文 的过程 中经 常 出现乱 码, 导致 中文 乱码原 因有 很多 , 而 所 以对 于此类 问题 没有 哪种 技术 是可 以完 全解 决的 。但是 只要 编程人 员 的防 护措 施 做 的全 面 就 可 以避 免 这 类事 情 发 生 。 2 1 加入 p g . a e指 令来 指 定页 面使 用 的字符 集 。 Page 指 令 的 作 用 域 是 整 个 JSP 页 面,格 式 如 下 : <%@Page
乱码的原因及处理方法
乱码的原因及处理方法2012-05-09 17:16困扰已久的乱码问题终于得到解决,希望下次出现更多问题,解决问题的过程很愉快!关于jsp乱码问题的解决2009-01-22 21:32关于jsp乱码问题的解决。
1 最基本的乱码问题。
这个乱码问题是最简单的乱码问题。
一般新会出现。
就是页面编码不一致导致的乱码。
<%@ page language="java" pageEncoding="UTF-8"%><%@ page contentType="text/html;charset=gb2312"%><html><head><title>中文问题</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head></head><body>我是个好人</body></html>三个地方的编码。
第一个地方的编码格式为jsp文件的存储格式。
Eclipse会根据这个编码格式保存文件。
并编译jsp文件,包括里面的汉字。
第二处编码为解码格式。
因为存为UTF-8的文件被解码为iso8859-1,这样如有中文肯定出乱码。
也就是必须一致。
而第二处所在的这一行,可以没有。
缺省也是使用iso8859-1的编码格式。
所以如果没有这一行的话,“我是个好人”也会出现乱码。
必须一致才可以。
第三处编码为控制浏览器的解码方式。
如果前面的解码都一致并且无误的话,这个编码格式没有关系。
有的网页出现乱码,就是因为浏览器不能确定使用哪种编码格式。
因为页面有时候会嵌入页面,导致浏览器混淆了编码格式。
出现了乱码。
JSP中文乱码问题解决办法
JSP中文乱码问题解决办法当用request对象获取客户提交的汉字字符时,会出现乱码问题,所以对含有汉字字符的信息必须进行特殊处理。
常见的几种字符集编码:⏹ASCII码:不支持中文⏹ISO-8859-1:不支持中文⏹GB2313、GBK:支持中文⏹Unicode:支持中文⏹UTF-8:支持中文在解决JSP中文乱码问题前,弄清以下几点:(1) windows平台采用的默认字符集编码是:GBK(2) IE浏览器默认采用UTF-8字符集编码方式发送Http请求。
(3) Tomcat在处理Get请求时,永远采用ISO-8859-1编码;Tomcat在处理Post请求时,默认采用ISO-8859-1编码;如果进行了如下设置request.setCharacterEncoding(“GBK”),则采用GBK编码。
可以使用如下几种方式解决JSP中文乱码问题。
1、方法一:调用自定义的转换函数<%@page contentType="text/html;charset=GB2312"%><%!public String getStr(String s) {String str = s;try {byte[] b = str.getBytes("ISO-8859-1");str = new String(b);return str;} catch (Exception e) {return str;}}%>使用内置对象request将获取的数据,使用ISO-8859-1进行重新编码,并保存到一个字节数组中,然后调用new String()方法,以GBK方式将这个字节数组构造出一个新的字符串,这个新的字符串就是我们想要的结果。
适用于以下三种情况:(1) 以Get方式提交表单,提交的数据中包含汉字字符。
(2) 以Post方式提交表单,提交的数据中包含汉字字符。
页面乱码的原因
页面乱码的原因
在浏览网页时,我们有时会遇到页面乱码的情况,这是因为网页编码与浏览器编码不一致所导致的。
下面我们来详细了解一下页面乱码的原因及解决方法。
一、页面乱码的原因
1.网页编码与浏览器编码不一致
网页编码是指网页中所使用的字符编码方式,而浏览器编码是指浏览器所使用的字符编码方式。
如果网页编码与浏览器编码不一致,就会导致页面乱码。
2.网页中含有特殊字符
如果网页中含有特殊字符,如中文、日文、韩文等,而浏览器无法识别这些字符,就会导致页面乱码。
3.浏览器设置不正确
如果浏览器的编码设置不正确,就会导致页面乱码。
例如,浏览器设置为GB2312编码,而网页编码为UTF-8,就会导致页面乱码。
二、页面乱码的解决方法
1.修改浏览器编码
在浏览器中,我们可以通过修改编码方式来解决页面乱码的问题。
具体操作方法为:在浏览器菜单栏中选择“查看”-“编码”-“自动选择”,或者手动选择与网页编码一致的编码方式。
2.修改网页编码
如果浏览器编码设置正确,但页面仍然出现乱码,就需要修改网页编码。
具体操作方法为:在网页源代码中添加<meta charset="UTF-8">标签,或者在网页头部添加Content-Type标签。
3.使用专业工具
如果以上方法都无法解决页面乱码的问题,可以使用专业工具来解决。
例如,可以使用Notepad++等文本编辑器来修改网页编码,或者使用浏览器插件来自动识别网页编码。
页面乱码是一个比较常见的问题,但只要我们掌握了正确的解决方法,就可以轻松解决。
希望本文能够对大家有所帮助。
中文乱码
4.创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成JSP页面乱码
5.用户提交JSP页面的编码与显示数据的JSP页面编码不一致,就肯定会造成JSP页面乱码.
如用户输入资料的JSP页面是big5码, 显示用户输入的JSP页面却是gb2312,这种100%会造成JSP页面乱码
要解决JSP乱码,首先就要了解JSP乱码的原因
1.架设服务器安装MYSQL时的会让你选择一种编码,如果这种编码与你的网页不一致,可能就会造成JSP页面乱码
2.在PHPMYADMIN或mysql-front等系统 创建数据库时会让你选择一种编码,如果这种编码与你的网页不一致,也有可能造成JSP页面乱码
我们一一来表达:
1.如果安装mysql的编码已不能更改,很多朋友是购买虚拟主机建立网站,无权更改MYSQL的安装编码,这一关我们可以跳过,因为只要后面的步聚正确,一样能解决乱码问题
2.修改数据库编码,如果是数据库编码不正确: 可以在phpmyadmin 执行如下命令: ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将test数据库的编码设为utf8
3.修改表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将一个表category的编码改为utf8
4.修改字段的编码:
ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
JSP出现中文乱码问题解决方法详解
JSP出现中⽂乱码问题解决⽅法详解在介绍⽅法之前我们⾸先应该清楚具体的问题有哪些,笔者在本博客当中论述的JSP中⽂乱码问题有如下⼏个⽅⾯:页⾯乱码、参数乱码、表单乱码、源⽂件乱码。
下⾯来逐⼀解决其中的乱码问题。
⼀、JSP页⾯中⽂乱码在JSP页⾯中,中⽂显⽰乱码有两种情况:⼀种是HTML中的中⽂乱码,另⼀种是在JSP中动态输出的中⽂乱码。
先看⼀个JSP程序:<%@ page language="java" import="java.util.*" %><html><head><title>中⽂显⽰⽰例</title></head><body>这是⼀个中⽂显⽰⽰例:<%String str = "中⽂";out.print(str);%></body></html>上⾯这个JSP程序看起来好像是在页⾯显⽰⼏句中⽂⽽且标题也是中⽂。
运⾏后在浏览器中显⽰如图所⽰原因在于没有在JSP中指定页⾯显⽰的编码,消除乱码的解决⽅案很简单上⾯代码中page命令修改成如下所⽰即可<%@ page language="java" import="java.util.*" contentType="text/html; charset=GB2312" %><html><head><title>中⽂显⽰⽰例</title></head><body>这是⼀个中⽂显⽰⽰例:<%String str = "中⽂";out.print(str);%></body></html>再次运⾏乱码消失,原理就是向页⾯指定编码为GB2312,那么页⾯就会按照此编码来显⽰,于是乱码消失。
JSP技术中文乱码的原因及解决方法
JSP 技术中文乱码的原因及解决方法杨金花(西安铁路职业技术学院陕西西安710014)摘要:JSP 技术广泛应用于动态网页制作,但在应用中文字符时常常出现乱码。
以前有关JSP 技术中文乱码的研究,只是侧重于对常见的几种中文乱码情况分析,并从网页代码方面进行研究,然后给出相应的代码,缺少对造成中文乱码原因的研究。
本文从造成乱码的根本原因入手进行分析,以JSP 技术工作过程为线索,提出新的研究思路:从开发Java 程序时所涉及的开发环境以及使用的开发工具着手,研究字符的存储与编码的关系,将影响Java 中字符编码的原因分为内因和外因。
研究结果表明,在使用JSP 技术的过程中,中文字符的编码不仅在JSP 工作过程中,会发生编码的转换,而且会因开发环境以及使用开发工具不同,使存储在内存的编码形式发生转换,每种编码之间的转换没有规律。
本文系统地分析了Java 中字符编码的转换,最后针对JSP 中常见的中文乱码情况,给出了相应的解决方法。
关键词:字符编码;中文乱码;JSP 技术;Servlet 中图分类号:TP311文献标识码:A文章编号:1674-6236(2011)01-0025-03The reason and solution of Chinese garbled code in JSP technologyYANG Jin -hua(Xi ’an Railway Vocational Technical College ,Xi ’an 710014,China )Abstract:JSP technology is widely used in the production of dynamic web pages ,but the chinese characters in its application often garbled.Chinese garbled before the JSP technology research ,is focused on several common chinese garbled on the situation analysis ,and researches aspects of the code from the page ,and then gives the corresponding code ,the lack of research into the reasons causes the chinese garbled.This paper analyses from the real causes of the underlying cause garbled.JSP technology researches to the work process for the clues ,puts forward new research ideas :the development of Java programs involved in the development environment and start using the development tools ,storage and encoding of character relationships ,affecting the character encoding in Java is divided into internal and external reasons.The results show that use of JSP technology in the process ,the chinese character code in the JSP course of their work not only will happen coding of the convert ,but also because of development environment ,and use the development tools ,the code stored in memory in different forms.Between each code conversion is not the law.This paper systematically analysed the Java character encoding conversion ,in the end for the JSP common situation in the chinese garbled ,the corresponding solution was given.Key words:character encoding ;chinese garbled ;JSP technology ;ServletJSP ,也就是Java Server Page (Java 服务器网页),是目前市场上主流的分布式应用程序开发平台。
JSP中文乱码问题完全解决方案
request.setCharacterEncoding(this.encodingName);
}
chain.doFilter(request, response);
}
public void destroy() {
} else {
this.enable = false;
}
}
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
四. 数据库操作中文乱码
在建立数据库的时候,应该选择支持中文的编码格式,最好能和JSP页面的编码格式保持一致,这样就可以尽可能减少数据库操作的中文乱码问题。同时在JDBC连接数据库的时候可以使用类似下面这种形式的URL。jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs;useUnicode=true;characterEncoding=gb2312
import javax.servlet.UnavailableException;
public class SetCharacterEncodingFilter implements Filter {
protected FilterConfig filterConfig;
protected String encodingName;
}
}
在web.xml中添加过滤器的配置如下:
<filter>
使用myeclipse出现中文乱码的情况以及解决办法
使⽤myeclipse出现中⽂乱码的情况以及解决办法
⼀:在jsp页⾯使⽤中⽂在浏览器中显⽰的时候出现乱码,解决问题的办法:
1)直接在<mete>标签中修改charset属性为"utf-8"或者为“gb2312”可以解决中⽂乱码问题。
2)因为jsp页⾯是在编译器中编译成.class⽂件之后在经过tomcat服务器输出在浏览器中时需要解析server.xml配置⽂件,所以可以把此配置⽂件中的<connector />标签中的URIEncoding="UTF-8";
⼆:html页⾯或者jsp中引⼊的js⽂件中可能也会出现中⽂乱码:
原因⼀定是页⾯的编码⽅式与js⽂件的编码⽅式不同,需要修改以便统⼀。
这个时候解决办法:
1)在页⾯引⼊脚本的代码中添加charset="utf-8"与页⾯保持⼀致(亲测效果不佳)
2)最有效的是把js⽂件分离出来⽤记事本打开另存为时选择编码格式:
三:还有其他情况后续补上。
JSP中文乱码的产生原因及解决方案
JSP中文乱码的产生原因及解决方案在JSP的开发过程中,经常出现中文乱码的问题,可能一直困扰着大家,现在把JSP 开发中遇到的中文乱码的问题及解决办法写出来供大家参考。
首先需要了解一下Java中文问题的由来:Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。
原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。
首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。
基于这种乱码,建议在Java文件中尽量不要写中文(注释部分不参与编译,写中文没关系),如果必须写的话,尽量手动带参数-ecoding GBK或-ecoding gb2312或-ecoding UTF-8编译;对于JSP,在文件头加上<%@ page contentType="text/html;charset=GBK"%>或<%@ page contentType="text/html;charset=gb2312"%>基本上就能解决这类乱码问题。
下面是一些常见中文乱码问题的解决方法(下面例子中ecoding采用的是gb2312,也可设为ecoding GBK或ecoding UTF-8):一、JSP页面乱码这种乱码问题比较简单,一般是页面编码不一致导致的乱码,一般新手容易出现这样的问题,具体分以下两种情况:➢未指定使用字符集编码下面的显示页面(display.jsp)就出现乱码:<html><head><title>JSP的中文处理</title><meta http-equiv="Content-Type" content="text/html charset=gb2312"> </head><body><%out.print("JSP的中文处理");%></body>这种乱码的原因是没有在页面里指定使用的字符集编码,JSP页面中出现了中文字符,而默认的ISO-8859-1字符集中无中文字符,解决方法:只要在页面开始地方用下面代码指定字符集编码即可,在JSP页面中指定编码方式(gb2312),和浏览器解码方式设置相同,即在页面的第一行加上:<%@ page contentType="text/html; charset=gb2312"%>,就可以消除乱码了。
乱码解决的四种方法
乱码解决的四种方法下边提供4种不同情况的乱码解决方案,基本上包括了web开发中出现乱码的不同情况。
主要针对java+ mysql 开发环境提出的乱码解决方案,只要作相应修改,可以用于不同语言环境的乱码问题解决。
下边提供4种不同情况的乱码解决方案,基本上包括了web开发中出现乱码的不同情况。
主要针对java+mysql开发环境提出的乱码解决方案,只要作相应修改,可以用于不同语言环境的乱码问题解决。
一、JSP页面显示乱码下面的显示页面(display.jsp)就出现乱码:程序代码<html><head><title>JSP的中文处理</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body><%out.print("JSP的中文处理");%></body></html>对不同的WEB服务器和不同的JDK版本,处理结果就不一样。
原因:服务器使用的编码方式不同和浏览器对不同的字符显示结果不同而导致的。
解决办法:在JSP页面中指定编码方式(gb2312),即在页面的第一行加上:<%@ page contentType="text/html; charset=gb2312"%>,就可以消除乱码了。
完整页面如下:<%@ page contentType="text/html; charset=gb2312"%><html><head><title>JSP的中文处理</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body><%out.print("JSP的中文处理");%></body></html>二、表单提交中文时出现乱码下面是一个提交页面(submit.jsp),代码如下:程序代码<html><head><title>JSP的中文处理</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body><form name="form1" method="post" action="process.jsp"><div align="center"><input type="text" name="name"><input type="submit" name="Submit" value="Submit"></div></form></body></html>下面是处理页面(process.jsp)代码:程序代码<%@ page contentType="text/html; charset=gb2312"%><html><head><title>JSP的中文处理</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body><%=request.getParameter("name")%></body></html>如果submit.jsp提交英文字符能正确显示,如果提交中文时就会出现乱码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何解决JSP页面显示乱码问题
2009-06-30 15:22 网络 builder 字号:T | T
本文介绍JSP页面经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。
AD:WOT2014课程推荐:实战MSA:用开源软件搭建微服务系统
一、JSP页面显示乱码
下面的显示JSP页面(display.jsp)就出现乱码:
1.<html>
2.<head>
3.<title>JSP的中文处理</title>
4.<meta http-equiv="Content-Type"content="text/html; charset=gb2312">
5.</head>
6.<body>
7.<%
8.out.print("JSP的中文处理");
9.%>
10.</body>
11.</html>
对不同的WEB服务器和不同的JDK版本,处理结果就不一样。
原因:服务器使用的编码方式不同和浏览器对不同的字符显示结果不同而导致的。
解决办法:在JSP页面中指定编码方式(gb2312),即在页面的第一行加上:
1.<%@ page contentType="text/html; charset=gb2312"%>
就可以消除乱码了。
完整页面如下:
1.<%@ page contentType="text/html; charset=gb2312"%>
2.<html>
3.<head>
4.<title>JSP的中文处理</title>
5.<meta http-equiv="Content-Type"content="text/html; charset=gb2312">
6.</head>
7.
8.<body>
9.<%
10.out.print("JSP的中文处理");
11.%>
12.</body>
13.</html>
二、表单提交中文时出现乱码
下面是一个提交页面(submit.jsp),代码如下:
1.<html>
2.<head>
3.<title>JSP的中文处理</title>
4.<meta http-equiv="Content-Type"content="text/html; charset=gb2312">
5.</head>
6.<body>
7.<form name="form1"method="post"action="process.jsp">
8.<div align="center">
9.<input type="text"name="name">
10.<input type="submit"name="Submit"value="Submit">
11.</div>
12.</form>
13.</body>
14.</html>
下面是处理页面(process.jsp)代码:
1.<%@ page contentType="text/html; charset=gb2312"%>
2.<html>
3.<head>
4.<title>JSP的中文处理</title>
5.<meta http-equiv="Content-Type"content="text/html; charset=gb2312">
6.</head>
7.<body>
8.<%=request.getParameter("name")%>
9.</body>
10.</html>
如果submit.jsp提交英文字符能正确显示,如果提交中文时就会出现乱码。
原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。
解决办法:通过request.seCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。
修改后的process.jsp代码如下:
1.<%@ page contentType="text/html; charset=gb2312"%>
2.<%
3.request.seCharacterEncoding("gb2312");
4.%>
5.<html>
6.<head>
7.<title>JSP的中文处理</title>
8.<meta http-equiv="Content-Type"content="text/html; charset=gb2312">
9.</head>
10.
11.<body>
12.<%=request.getParameter("name")%>
13.</body>
14.</html>
三、数据库连接出现乱码
只要涉及中文的地方全部是乱码,解决办法:在数据库的数据库URL中加上
useUnicode=true&characterEncoding=GBK就OK了。
四、数据库的显示乱码
在mysql4.1.0中,varchar类型,text类型就会出现中文乱码,对于varchar类型把它设为binary属性就可以解决中文问题,对于text类型就要用一个编码转换类来处理,实现如下:
1.public String iso2gb(String qs)
2.{
3.try{
4.if (qs == null) return "NULL";
5.else
6.{
7.return new String(qs.getBytes("iso-8859-1"),"gb2312");
8.}
9.}
10.catch(Exception e){
11.System.err.println("iso2gb error:"+e.getMessage());
12.}
13.return "NULL";
14.}
15.public String gb2iso(String qs)
16.{
17.try
18.{
19.if (qs == null) return "NULL";
20.else {
21.return new String(qs.getBytes("gb2312"),"iso-8859-1"); }
22.}
23.catch(Exception e){ System.err.println("gb2iso error:"+e.getMessage());}
24.return "NULL";
25.}
以上是开发过程中,JSP页面经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇
到的中文乱码的问题及解决办法写出来供大家参考。
【编辑推荐】
1.JSP连接ORACLE数据库时注意的一些问题
2.JSP中tomcat的SQL Server2000数据库连接池的配置
3.简单介绍Servlets和JSP的区别
4.JSP include指令和include行为的区别。