jsp文件调用js时,js文件中文字乱码

合集下载

JSP技术中文乱码的原因及解决方法

JSP技术中文乱码的原因及解决方法

万方数据《电子设计工程》2011年第1期转换的规律。

3)缩程所用的软件工具的字符编码开发JSP文件时,1)iS08859一l编码通常叫做htin一1,属于单字节编码.最多能表示的字符范围是0~255.应用于英文系列。

IS08859一l编码表示的字符范围很窄,无法表示中文字符。

但是.由于是单字节编码,和计算机最基础的表示单位一致,所以很多时候,仍IH使用IS08859一l编码来表示。

而且在很多协议上.默认使用该编码。

2)GB2312/GBK编码这就是汉字的国标码,专门用来表示汉字.是双字节编码其中GBK编码能够用来同时表示繁体字和简体字,而GB2312只能表示简体字,GBK是兼容GB2312编码的。

3)Unicode编码这是最统一的编码,可以用来表示所有语言的字符,而且是定长双字节(也有四字节的)编码,包括英文字母在内。

但是它是不兼容IS08859一l编码的,也不兼容任何编码。

4)UTF一8编码UTF一8编码兼容IS08859一l编码.兼容Unicode编码。

兼容同时也可以用来表示所有语言的字符.不过。

UTF-8编码是不定长编码,每一个字符的长度从l~6个字节不等。

另外,UTF一8编码自带简单的校验功能。

一般来讲。

英文字母都是用一个字节表示,而汉字使用3个字节。

从以上的所述13I可以知道。

当网贞上仅有英文字符时。

可以选用IS08859一l编码。

网贞141上一旦有汉字时,字符的编码必须为GB2312/GBK编码.Unicode编码或UrⅡ、_8编码。

特别值得一提的是。

UTF一8编码还与其他编码兼容。

使用这种编码.就不会出现乱码。

2影响JSP文件中字符编码的外部因素在JSP动态网页开发过程中.所谓的影响JSP文件巾字符编码的外部因素,是指运行其他软件的最低层软件——操作系统。

建立JSP文件时所用的软件,以及显示JSP文件的工具对汉字编码的影响151。

具体地说就是操作系统、测览器、编程所用的软件T具。

每个软件都有自己默认支持的字符编码。

jsp乱码问题及其解决办法word精品文档12页

jsp乱码问题及其解决办法word精品文档12页

jsp乱码问题及其解决办法jsp乱码问题及其解决办法2019年04月09日星期五下午05:32困扰已久的乱码问题终于得到解决,希望下次出现更多问题,解决问题的过程很愉快!关于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的编码格式。

所以如果没有这一行的话,"我是个好人"也会出现乱码。

必须一致才可以。

第三处编码为控制浏览器的解码方式。

如果前面的解码都一致并且无误的话,这个编码格式没有关系。

有的网页出现乱码,就是因为浏览器不能确定使用哪种编码格式。

因为页面有时候会嵌入页面,导致浏览器混淆了编码格式。

出现了乱码。

2表单使用Post方式提交后接收到的乱码问题这个问题也是一个常见的问题。

这个乱码也是tomcat的内部编码格式iso8859-1在捣乱,也就是说post提交时,如果没有设置提交的编码格式,则会以iso8859-1方式进行提交,接受的jsp却以utf-8的方式接受。

如何处理JSP开发容易出现的中文乱码问题

如何处理JSP开发容易出现的中文乱码问题

在java编程中,经常会碰到汉字的处理及显示问题,一不小心就会产生一大堆乱码或问号,这也是让许多初学者手足无措的讨厌问题。

造成这种问题的根本原因是java中默认的编码方式是Unicode,而中国人通常使用的文件和DB都是基于GB2312或者big5等编码,固会出现此问题。

对于中文问题,不同的jdk版本,不同的应用服务器,处理方法都会有一些微小的差异。

在这里,主要针对Tomcat中JSP开发容易出现的中文乱码问题进行讨论,当然,大多数解决方法是通用的。

一般有以下几种情况:1、JSP输出中文的乱码问题所谓在JSP输出中文,即直接在JSP中输出中文,或者给变量赋中文值再输出等,这种情况下的乱码问题往往是因为没有给JSP页面制定显示字符的编码方式,解决方法如下:(1)在JSP页面头部加上语句<% @ page contentType=”text/html;charset=utf-8”%>(在servlet 中使用httpServletResponse.setContentType(“text/html; charset=utf-8”)),最好同时在JSP页面的head部分加上<meta http-equiv=”Content-Type”content=”text/html;charset=utf-8”>。

(2)在每次要输出中文的地方主动转换编码方式,比如要在页面中输入“中文”二字,就可以用以下方法:<%String str = “中文”;Byte[] tmpbyte = str.getBytes(“ISO8859_1”);str = new String(tmpbyte);out.print(str);2、获取表单提交的数据时的中文乱码问题在没有加任何其他处理之前,用request.getParameter(“paramName”)获取表单提交中的数据,且表单数据中含有中文时,返回的字符串会呈现乱码。

JSP中汉字编码时出现“乱码”的情况及具体解决方案

JSP中汉字编码时出现“乱码”的情况及具体解决方案

l4 1
F。 RTu E w 。 R D 。1 。
、 一
关键 词 : J ; S 汉字编 P 码;乱码 问 ; 题 解决

集 是几 乎所 有的 中 文 系统和 国际 化 的软 件都 时 ,可以先用数据库 管理系统提供的管理功能 支 持的 中 文字符 集 ,这 也是 最 基本 的 中文字 检查其中的中文数据是否正确。 符集。其编码范 围是高位0 1 0 e xa xf ,低位也 四 J 服务器对中文的支持程度 SP 是 O a l xe x l_ f;汉字从 O b a _ 0 x 0 l开始,结 束于 支 持 J 的 服 务 器 有 很 多 ,这 些 服 务 器 对 SP 0 7 e; xf f 中文的支持 度 又各不相同 ,例如RE N,其 SI G BK 是 GB 3 2 0 的扩 展,是 向 兼 对中文的 支持程度相当的好,而T0MC 对 2 1 8 AT 容的。它包含了 2 9 2个汉字,其 编码范 围是 中文的支持程 度一般。所以 ,在J 编程过程 00 SP 0 8 4 - xe x 10一 f ̄,剔除高位 0 8 的字位。其所 中,要注意J P E 0 x0 S  ̄ 务器对中文的支持程度。 有字符郜 町以一对 一 映射到 Uncd .。 i e2 0 o 找 到 r乱码产生的原因 ,我们在实际编程 GBl0 0 0 0GBK2 8 3 2 0 ( K)在 GBK 的基 过 程中只要综合应用编 程方法 ,就可以解决乱 础 上进 步扩展 _ 宁 ,增加 了藏 、蒙等少数 码的 问题 。 『 汉 民族的宁形。GB 2 从根本上解决 了字位不 K K 实例分析 够 ,宁 形不足的 问题 。它并没有确定所 有的字 下面 以 ・ 个具体的例子来 分析J P S 中乱 码 也 就 足 所 峭的 圈际 化 (lN) 。 各 种 语 言信 启、 形 ,只是规定 了编码 范围 ,留待以 后扩 充。编 解 决 的 方 法 。 【8 BK 兼容 ;四 测 试 平 台 l : 被进一步规 范为 L c l 信息 。处理的底层字 码是变 的 ,其二字节部分与 G o ae ND 20 T MYS 4 QL 字节部 分是扩宽的字形 、字位 ,其编码 范围是 W I OW ¥ 0 0} OM CAT{ 符集变成 了几 包含 了所有字形的 Unc d 。 i e o x l xf 、 l I x 0 0 3 、三 字 测 酞 平 台 2 : 现在大部分具 有 国际化特征 的软件核心t= 首字 节 0 8 O e ¨字 节O 3 x 9 } 节 0 8一0 f、四字 节0 3 — x 9 x i xe x 0 0 3。 W I OW S 0 0 RE I M Y Q 4 ND 2 0 + S N+ S L 符处理都足以 Un c d 为基础的 , 软件运 i e o 所 以 在J P , 管是 从 Uni O e 中 S c d 住 测 试 台 l 无论 怎么 设 置数 据 库 的 下 行时根据 当时的 L cl/ n / o e a e设置 oae I g C d p g a t 编码还是Byt >Un C de 存在问 c c di. 以及 网页的编码 ,都无法 正常显示 e iO 都 n o Ig n 确定桐应的本地字 符编码 设置 ,井依此 处理本 >BY e io e ye { l 台2F,只要 设置M YsQL 地 宁倚 。i处理过程中需要 实现 U io e 和 题 。从Un c d 转为B t ,如果 目标代码集不 f文 ,而 测 吠、 芏 ncd x3 。这 的e od ng,就 町以正常 示中文 。如 果在 nc i 本地宁 ? =的相 互转换 ,甚或以 Un c d 为 存 存对 应的 代码 ,则得 到的 结 果是 0 f _策 1 : io e 32 下需要 示 【 文 ,那 么除 了要 设置 } 1 中f 的两个 不同本地 字?= u 】 = 1 集的相互转换 。这种 是 因为GB2 l 符号 区中的一 些符 号被映 射到 测试 平台 1 些公 共的 符 号编 码 , 由于这 些 符号 出现 任 MY QIt cd, S %n o ig,对数据 库的读写要进行转 1 1 方式 网络环境 i v 被进一 步延伸 ,任 何网络两 S 89 或其它S S BC 字符集中 ,故它们征 换 ,转换代吗如 : 端 的宁衍信息也需要 根据 字符集的设 置睾 换成 I O 8 5 l 专 Un c d 中编码比较 靠前 ,有一 些其有效 位只 /o e p bi tig u l S r Ch n e d (tig s c n a g Co eS rn t) r 可接受的内容。 c pto 位 hr w OEx e i n J v 语 占内部 是用 Un c d 表 示宁符 仃8 ,和汉 字的 编码 莺叠 ,导 致 显示 乱码 。 t o s I aa io e ye i e o ye 的 ,遵守 Unc d V . 。J v 程序无论是 从B t转 为Unc d , 如果B t标识的字符在 io e 2 0 a a rt n c em’ n w S rn (t. eBye (io ti gsrg t ts” s x fd 从 / 丈件 系 统 以 宁 符 流 读 /写 文 件 ,还 是 往 源代码集 不存 ,则得到的结果是O f f ,同 往 8 5 l ) BK” ; 89 ¨, G ) 样存在编码 问题 。 URL 连接 ITMI j I 信息 ,或从 URL 连接 实际编程中 ,J P S r l 程序得到错误 S / e ve t 读取 参数值 ,都会有字符 编码的转换 。这 样做 N d I 题斛决 ! LS ̄ J 虽然增加 r 编程的复 杂度 ,容易引起混淆 ,但 的汉中信息 ,往往是这 两个过程的叠加 ,有时 甚 至是两个过程 叠加后 反复作用的结果 。 JP s 中汉宁编码时 “ 乱码”的问题一直是 却是符合 际化的思想的 。 三 、数据库 自身编码的方式。 JP S 中编 程值得注意的 问题 ,解决的方案也 有 从理论 来说 ,这些根据宁符集设 置而进 在J 编程过 程 【 ,不可避 免要和数据库 很多 。通常需要 考虑的就是从以上三 个方 面找 P s { l 行的卞 符转换 不应 该产生太 多问题 。而事 实是 S q 对症 下药 。 J P 的中文 s 由l F 成用程竹: 的实际运行环境 不【 ,uniO 打 交道 。所 以数据库 自身的编码 方式对J P , 到乱码产 生的原 , 百 I C de 中文的显示起 着决定性 作片。如果在 中文在 写 e c dn 并没有想像中那么复杂,在编程过程 1 n o ig 和 各个本地字符集的 补充、完善 ,以及 系统 或 n 应 用程序 寅现的不规范 ,转码时 出现的问题时 入数据库过程 中 已是乱码 ,那显示的数据毫无 中只要注意卡 是问题就 町避免问题现象的出现 。 交换用的字符编码集 ,如美国的 A C I S I ,中国 的 GB 3 2 8 ,日本的 J 等 ,作 为该 家/ 2 1~ 0 I S 区域 内信启、 处理的基 础,有着统一编码 的重 要 作用。字符编码集按长 度分 为 S BCS ( 字节 字 符集 ) ,DBCS ( 字节字符集 )两 人类。 双 早期的软 什 ( 尤其是操作 系统) ,为 了解决 本 地 符 信息 的计算机处理 ,出 了各种本地 化 版奉 (JO IlN),为 了区分 ,引进 了 LANG, C d p g 等概念 。但是 山于各个本地 字符集 oea e 代码范 围圣毳 ,相 互问信息 交换 困难 ;软件 各 个本地化版本 独立维护成本较 高。因此有必 要 将 本地 化工 怍中 的共性 抽 取 出来 ,作 一 处 致 理 ,将特 州的 本地 化处理内容降低 到最少。这

JSP中文乱码的解决方案大全

JSP中文乱码的解决方案大全

如何解决JSP中文乱码的问题一、Java中文问题的由来Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。

原因主要有两方面,Java和JSP 文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。

首先Java (包括JSP)源文件中很可能包含有中文,而Java和JSP 源文件的保存方式是基于字节流的,如果Java和JSP编译成class 文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。

基于这种乱码,建议在Java 文件中尽量不要写中文(注释部分不参与编译写中文没关系)如果必须写的话尽量手动带参数-ecoding GBK或-ecoding gb2312编译对于JSP在文件头加上<%@ page contentType=text/html;charset=GBK%:^<%@ page contentType=text/html;charset=gb2312%>基本上就能解决这类乱码问题。

二、常见的解决方式1,最基本的乱码问题。

这个乱码问题是最简单的乱码问题。

一般新会出现。

就是页面编码不一致导致的乱码。

<%@ page language=java pageEncoding=UTF-8%><%@ page contentType=text/html;charset=iso8859-1%><head><title> 中文问题</Mtle><meta http-equiv=Content-Type content=text/html;charset=UTF-8></head></head><body>我是个好人</body></html>三个地方的编码。

第一个地方的编码格式为jsp文件的存储格式。

JSP中文乱码问题解决方案

JSP中文乱码问题解决方案

JSP中文乱码问题解决方案中文乱码就是因为编码不符,可能出现乱码有四个地方:1 JSP编码乱码2 HTML编码乱码3 request获取数据乱码4 response输出信息乱码5 Cookie导致的编码问题下面将会对上面几种情况进行介绍:1 JSP乱码这种是最常见的,设置编码的位置位于JSP的第一行,如果在Eclipse中新建一个JSP默认是下面这种:<%@ page language="java"contentType="text/html; charset=ISO-8859-1"pageE ncoding="ISO-8859-1"%>可以看到它默认的页面编码和传输编码都是ISO-8859-1,这是用于欧洲国家的编码。

可以通过设置Eclipse中JSP的编码格式,来修改默认生成的编码格式。

如果想要支持中文,可以使用UTF-8、GB2312、GBK等,其中UTF-8是国际化的,哪个国家的都支持,所以推荐使用这个。

再来说说上面涉及到编码的两个地方:charset 和pageEncodingcharset是指服务器发往客户端展现时的编码;pageEncoding用于设置JSP页面本身的编码。

JSP在部署后提供给用户使用,会经过三个阶段:(1)JSP生成java文件:这个阶段会使用pageEncoding所定义的编码格式进行转换(2)java文件生成class文件:这个阶段由服务器tomcat自动使用utf -8编码把java文件转换成字节码class文件(3)通过读取class文件展现给用户:这个阶段由tomcat服务器获取字节码内容,通过使用contentType所定义的编码格式展现给用户。

大致过程如下图:这样设置好JSP中的第一行代码,就可以保证基本的JSP展现没有乱码了!<%@ page language="java"contentType="text/html; charset=UTF-8"pageEncodi ng="UTF-8"%>2 HTML乱码因为JSP中也包含html的内容,HTML本身也是有编码格式的。

JSP的中文乱码问题

JSP的中文乱码问题

JSP中文乱码问题有如下几个方面:页面乱码、参数乱码、表单乱码、源文件乱码。

下面来逐一解决其中的乱码问题。

一、JSP页面中文乱码在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码。

先看一个JSP程序:[java]view plaincopyprint?1.<%@ page language="java"import="java.util.*" %>2.<html>3. <head>4. <title>中文显示示例</title>5.6. </head>7. <body>8.这是一个中文显示示例:9. <%10. String str = "中文";11. out.print(str);12. %>13. </body>14.</html>上面这个JSP程序看起来好像是在页面显示几句中文而且标题也是中文。

运行后在浏览器中显示如图所示原因在于没有在JSP中指定页面显示的编码,消除乱码的解决方案很简单上面代1.<%@ page language="java"import="java.util.*" contentType="text/html;charset=GB2312" %>再次运行乱码消失,原理就是向页面指定编码为GB2312,那么页面就会按照此编码来显示,于是乱码消失。

二、URL传递参数中文乱码一般情况下在使用get方法提交表单的时候传递的参数如果是中文的话很可能会出现乱码。

下面是一个示例程序[java]view plaincopyprint?1.<%@ page language="java"import="java.util.*" contentType="text/html; charset=gb2312"%>2.<html>3. <head>4. <title>URL传递参数中文处理示例</title>5. </head>6. <%7. String param = request.getParameter("param");8. %>9. <body>10. <a href="URLCharset.jsp?param='中文'">请点击这个链接</a><br>11.你提交的参数为:<%=param%>12. </body>13.</html>上面这个JSP程序的功能就是通过一个URL链接向自身传递一个参数,这个参数是中文字符串,这个程序的运行效果如下图对于URL传递中文参数乱码这个问题,其处理方法比较特殊,仅仅转换这个中文字符串或者设置JSP页面显示编码都是不能解决问题的,需要修改Tomcat服务器的配置文件才能解决问题。

jsp页面显示中文乱码解决

jsp页面显示中文乱码解决

jsp页面显示中文乱码:jsp页面的编码方式有两个地方需要设置:<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ page contentType="text/html;charset=utf-8"%>其中:pageEncoding 指的是jsp文件本身在本地保存时的编码方式。

contentType的charset 是指服务器发送网页内容给客户端时所使用的编码。

从第一次访问一个jsp页面开始,到这个页面被发送到客户端,这个Jsp页面要经过三次编码转换:第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。

第二阶段是由JAVAC的JAVA源码至java byteCode的编译,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。

JAVAC用UTF-8的encoding读取java源码,编译成UTF-8 encoding的二进制码(即.class),这是JVM对常数字串在二进制码(java encoding)内表达的规范。

第三阶段是Tomcat(或其的application container)载入和执行阶段二的来的JAVA二进制码,输出的结果,也就是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效所以最终的解决方法为:在jsp页面设置pageEncoding或者contentType的其中一个为支持中文的编码格式(如utf-8,gbk,gb2312)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

register.jsp
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript" src="js/checkreg.js"></script>
checkreg.js
function check(myform){
if(myform.email.value==""){
alert("test请输入Email地址!");myform.email.focus();return (false);
}
if(!checkemail(myform.email.value)){
alert("您输入Email地址不正确!");myform.email.focus();return (false);
}
}
JSP文件调用外部js文件时,alert出来的对话框中中文是乱码!
解决方案:将js文件在UltraEdit等软件中,另存为utf-8编码格式,再复制到工程中
总结:
许多乱码情况都是两个文件编码格式不统一造成的,所以将两个文件的编码格式统一是解决乱码问题的一个指导思想!
1、在JS里对中文参数进行两次转码
复制代码代码如下:
var login_name = document.getElementById("loginname").value;
login_name = encodeURI(login_name);
login_name = encodeURI(login_name);
var aMsg = [
"很不满意|与人们描述的严重不符,非常不满",
"不满意|部分有与人们描述的不符,不满意",
"一般|一般,没有人们描述的那么好",
"满意|不错,与人们描述的基本一致,还是挺满意的",
"非常满意|与人们描述的完全一致,非常满意"
];
aMsg = encodeURI(aMsg);
aMsg = encodeURI(aMsg);。

相关文档
最新文档