- 浏览: 127024 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (145)
- java (145)
- Java网络编程 (1)
- SWT 文本框Text通过GC重绘改变边框颜色 (1)
- tomcat部署web工程的两种方法 (1)
- JAX-RS 从傻逼到牛叉 1:REST 基础知识 (1)
- FreyjaJdbcTemplate 大致上完工了,想请人重构。。 (1)
- 开始认识自己 (1)
- 设计模式-Abstract Factory 模式 (1)
- 数据库中主键的设计原则 (1)
- JNI中jstring类型与c语言中的字符串的转换 (1)
- mac环境变量 (1)
- STC单片机ADC转换的例子 (1)
- myeclipse 8下安装Ibator . (1)
- OSGI与Android结合 (1)
- CSDN BLOG EXPERT (1)
- Java中网络操作的开源库CommonsNet (1)
- Apache License Version 2.0 英文内容及中文翻译 (1)
- JTest (1)
- GeoCon 用C#编写的开源的地理信息数据转换工具 (1)
- ERP简易教程 (1)
- 提高站点在搜索引擎上的排名 (1)
- Wifi (1)
- 腾讯Q+开放平台,相信又是一次成功的模仿 (1)
- C#坦克大战网络版代码 (1)
- Problem16 (1)
- Ajax 应该变成 Ajaj (关于JSON 与 XML 的比较) (1)
- ava框架数据库连接池比较(c3p0 (1)
- dbcp和proxool)bonecp (1)
- 继续向成熟男人靠拢 (1)
- Qt4.7中 默认的构造函数 (1)
- xml CDATA (1)
- 只针对中英文混合分词的中文分词器 (1)
- 典型相关分析及其适用范围和spss操作(转) (1)
- llvm (1)
- java连接数据库Oracle|DB2|Sql Server|Sybase|Informix|MySQL||PostgreSQL|access (1)
最新评论
-
xm3530:
什么鬼?都没法看,发出来干嘛
Android中利用App实现消息推送机制的代码实例 -
lvtenglongxiaohei:
太经典了!
学习一下!
ERP简易教程 -
lvtenglongxiaohei:
<br> 一天中午,丈 ...
ERP简易教程 -
hzw2312:
加油~~~!!!
开始认识自己 -
123048591:
显示乱码
tomcat部署web工程的两种方法
<span class="apple-style-span" style="font: medium simsun; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate;"><span class="apple-style-span" style="font-size: 12px; line-height: 19px; font-family: verdana, nsimsun, sans-serif;">2001 年 3 月 01 日
<blockquote>网上就 jsp/servlet 中 dbcs字符编码问题有许多优秀的文章和讨论,本文对它们作一些整理,并结合ibm websphere application server3.5(was)的解决方法作一些说明,希望它不是多余的。</blockquote><p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;"><a name="n10037"><span class="atitle" style="font-weight: bold; font-size: 18px; font-family: arial, sans-serif;">问题的起源</span></a>
<table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="line-height: 19px;"><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" width="100%" height="1"><br><img src="http://www.ibm.com/i/c.gif" border="0" alt="" width="8" height="6"></td></tr></tbody></table><table class="no-print" border="0" cellspacing="0" cellpadding="0" align="right"><tbody><tr align="right"><td style="line-height: 19px;"><img src="http://www.ibm.com/i/c.gif" alt="" width="100%" height="4"><br><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td style="line-height: 19px;" valign="middle"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" border="0" alt="" width="16" height="16"><br></td><td style="line-height: 19px;" align="right" valign="top"><a class="fbox" style="font-size: 12px; color: #5c81a7; line-height: 13px; font-family: verdana, nsimsun, arial, sans-serif; text-decoration: none;" href="/admin/#main">回页首</a></td></tr></tbody></table></td></tr></tbody></table><br>
<p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;"><a name="n1004c"><span class="atitle" style="font-weight: bold; font-size: 18px; font-family: arial, sans-serif;">gb2312-80,gbk,gb18030-2000 汉字字符集及 encoding</span></a>它并没有确定所有的字形,只是规定了编码范围,留待以后扩充。 编码是变长的,其二字节部分与 gbk 兼容;四字节部分是扩充的字形、字位,其编码范围是首字节 0x81-0xfe、二字节0x30-0x39、三字节 0x81-0xfe、四字节0x30-0x39。 它的推广是分阶段的,首先要求实现的是能够完全映射到 unicode 3.0 标准的所有字形。 它是国家标准,是强制性的。 </ul><p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;">现在还没有任何一个操作系统或软件实现了 gbk2k 的支持,这是现阶段和将来汉化的工作内容。
<table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="line-height: 19px;"><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" width="100%" height="1"><br><img src="http://www.ibm.com/i/c.gif" border="0" alt="" width="8" height="6"></td></tr></tbody></table><table class="no-print" border="0" cellspacing="0" cellpadding="0" align="right"><tbody><tr align="right"><td style="line-height: 19px;"><img src="http://www.ibm.com/i/c.gif" alt="" width="100%" height="4"><br><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td style="line-height: 19px;" valign="middle"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" border="0" alt="" width="16" height="16"><br></td><td style="line-height: 19px;" align="right" valign="top"><a class="fbox" style="font-size: 12px; color: #5c81a7; line-height: 13px; font-family: verdana, nsimsun, arial, sans-serif; text-decoration: none;" href="/admin/#main">回页首</a></td></tr></tbody></table></td></tr></tbody></table><br>
<p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;"><a name="3"><span class="atitle" style="font-weight: bold; font-size: 18px; font-family: arial, sans-serif;">中文转码时'?'、乱码的由来</span></a>byte-->unicode, 如果byte标识的字符在源代码集不存在,则得到的结果是0xfffd.<p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;">如:<span class="apple-converted-space"> </span><br>byte ba[] = {(byte)0x81,(byte)0x40,(byte)0xb0,(byte)0xa1}; new string(ba,"gb2312"); </ul><p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;">实际编程中,jsp/servlet 程序得到错误的汉字信息,往往是这两个过程的叠加,有时甚至是两个过程叠加后反复作用的结果.
<table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="line-height: 19px;"><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" width="100%" height="1"><br><img src="http://www.ibm.com/i/c.gif" border="0" alt="" width="8" height="6"></td></tr></tbody></table><table class="no-print" border="0" cellspacing="0" cellpadding="0" align="right"><tbody><tr align="right"><td style="line-height: 19px;"><img src="http://www.ibm.com/i/c.gif" alt="" width="100%" height="4"><br><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td style="line-height: 19px;" valign="middle"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" border="0" alt="" width="16" height="16"><br></td><td style="line-height: 19px;" align="right" valign="top"><a class="fbox" style="font-size: 12px; color: #5c81a7; line-height: 13px; font-family: verdana, nsimsun, arial, sans-serif; text-decoration: none;" href="/admin/#main">回页首</a></td></tr></tbody></table></td></tr></tbody></table><br>浏览器中看到的 jsp/servlet 页面中的汉字怎么都成了 ’?’ ? 浏览器中看到的 servlet 页面中的汉字怎么都成了乱码? java 应用程序界面中的汉字怎么都成了方块? jsp/servlet 页面无法显示 gbk 汉字。 jsp 页面中内嵌在<%...%>,<%=...%>等tag包含的 java code 中的中文成了乱码,但页面的其它汉字是对的。 jsp/servlet 不能接收 form 提交的汉字。 jsp/servlet 数据库读写无法获得正确的内容。 </ul><p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;">隐藏在这些问题后面的是各种错误的字符转换和处理(除第3个外,是因为 java font 设置错误引起的)。解决类似的字符 encoding 问题,需要了解 jsp/servlet 的运行过程,检查可能出现问题的各个点。
</font></span>
<span class="apple-style-span" style="font: medium simsun; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate;"><span class="apple-style-span" style="font-size: 12px; line-height: 19px; font-family: verdana, nsimsun, sans-serif;"><p>
<p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;">运行于java 应用服务器的 jsp/servlet 为 browser 提供 html 内容,其过程如下图所示:<br><span class="apple-converted-space"> <img src="http://www.ibm.com/developerworks/cn/java/jsp_dbcsz/image001.gif" alt="" width="807" height="181"></span><br><p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;">java 需要被编译为 .class 才能在 jvm 中执行,这个过程存在与a.同样的 file.encoding 问题。从这里开始 servlet 和 jsp 的运行就类似了,只不过 servlet 的编译不是自动进行的。对于jsp程序, 对产生的java 中间文件的编译是自动进行的(在程序中直接调用sun.tools.javac.main类). 因此如果在这一步出现问题的话, 也要检查encoding和os的语言环境,或者将内嵌在jsp java code 中的静态汉字转为 unicode, 要么静态文本输出不要放在 java code 中。 对于servlet, javac 编译时手工指定-encoding 参数就可以了。 [*]<p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;">这是解释 url 字符 encoding 问题。如果通过 get/post 方式从 browser 返回的参数值中包含汉字信息, servlet 将无法得到正确的值。sun的 j2sdk 中,httputils.parsename 在解析参数时根本没有考虑 browser 的语言设置,而是将得到的值按 byte 方式解析。这是网上讨论得最多的 encoding 问题。因为这是设计缺陷,只能以 bin 方式重新解析得到的字符串;或者以 hack httputils 类的方式解决。参考文章 2 均有介绍,不过最好将其中的中文 encoding gb2312、 cp1381 都改为 gbk,否则遇到 gbk 汉字时,还是会有问题。 servlet api 2.3 提供一个新的函数 httpserveletrequest.setcharacterencoding 用于在调用 request.getparameter(“param_name”) 前指定应用程序希望的 encoding,这将有助于彻底解决这个问题。 </ul>
<font class="apple-style-span" style="font-weight: normal; text-indent: 0px; line-height: normal; font-style: normal; white-space: normal; letter-spacing: normal; border-collapse: separate; font-variant: normal;" size="4" color="#000000"><font class="apple-style-span" style="font-size: 12px; line-height: 19px;">
</font></font></span><font class="apple-style-span" style="font-weight: normal; text-indent: 0px; line-height: normal; font-style: normal; white-space: normal; letter-spacing: normal; border-collapse: separate; font-variant: normal;" size="4" color="#000000">
</font></span>
</span></p>
<blockquote>网上就 jsp/servlet 中 dbcs字符编码问题有许多优秀的文章和讨论,本文对它们作一些整理,并结合ibm websphere application server3.5(was)的解决方法作一些说明,希望它不是多余的。</blockquote><p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;"><a name="n10037"><span class="atitle" style="font-weight: bold; font-size: 18px; font-family: arial, sans-serif;">问题的起源</span></a>
<table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="line-height: 19px;"><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" width="100%" height="1"><br><img src="http://www.ibm.com/i/c.gif" border="0" alt="" width="8" height="6"></td></tr></tbody></table><table class="no-print" border="0" cellspacing="0" cellpadding="0" align="right"><tbody><tr align="right"><td style="line-height: 19px;"><img src="http://www.ibm.com/i/c.gif" alt="" width="100%" height="4"><br><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td style="line-height: 19px;" valign="middle"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" border="0" alt="" width="16" height="16"><br></td><td style="line-height: 19px;" align="right" valign="top"><a class="fbox" style="font-size: 12px; color: #5c81a7; line-height: 13px; font-family: verdana, nsimsun, arial, sans-serif; text-decoration: none;" href="/admin/#main">回页首</a></td></tr></tbody></table></td></tr></tbody></table><br>
<p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;"><a name="n1004c"><span class="atitle" style="font-weight: bold; font-size: 18px; font-family: arial, sans-serif;">gb2312-80,gbk,gb18030-2000 汉字字符集及 encoding</span></a>
<table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="line-height: 19px;"><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" width="100%" height="1"><br><img src="http://www.ibm.com/i/c.gif" border="0" alt="" width="8" height="6"></td></tr></tbody></table><table class="no-print" border="0" cellspacing="0" cellpadding="0" align="right"><tbody><tr align="right"><td style="line-height: 19px;"><img src="http://www.ibm.com/i/c.gif" alt="" width="100%" height="4"><br><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td style="line-height: 19px;" valign="middle"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" border="0" alt="" width="16" height="16"><br></td><td style="line-height: 19px;" align="right" valign="top"><a class="fbox" style="font-size: 12px; color: #5c81a7; line-height: 13px; font-family: verdana, nsimsun, arial, sans-serif; text-decoration: none;" href="/admin/#main">回页首</a></td></tr></tbody></table></td></tr></tbody></table><br>
<p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;"><a name="3"><span class="atitle" style="font-weight: bold; font-size: 18px; font-family: arial, sans-serif;">中文转码时'?'、乱码的由来</span></a>
<table border="0" cellspacing="0" cellpadding="0" width="100%"><tbody><tr><td style="line-height: 19px;"><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" width="100%" height="1"><br><img src="http://www.ibm.com/i/c.gif" border="0" alt="" width="8" height="6"></td></tr></tbody></table><table class="no-print" border="0" cellspacing="0" cellpadding="0" align="right"><tbody><tr align="right"><td style="line-height: 19px;"><img src="http://www.ibm.com/i/c.gif" alt="" width="100%" height="4"><br><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td style="line-height: 19px;" valign="middle"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" border="0" alt="" width="16" height="16"><br></td><td style="line-height: 19px;" align="right" valign="top"><a class="fbox" style="font-size: 12px; color: #5c81a7; line-height: 13px; font-family: verdana, nsimsun, arial, sans-serif; text-decoration: none;" href="/admin/#main">回页首</a></td></tr></tbody></table></td></tr></tbody></table><br>
</font></span>
<span class="apple-style-span" style="font: medium simsun; color: #000000; text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate;"><span class="apple-style-span" style="font-size: 12px; line-height: 19px; font-family: verdana, nsimsun, sans-serif;"><p>
<p style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 8px; padding-top: 5px;">运行于java 应用服务器的 jsp/servlet 为 browser 提供 html 内容,其过程如下图所示:<br><span class="apple-converted-space"> <img src="http://www.ibm.com/developerworks/cn/java/jsp_dbcsz/image001.gif" alt="" width="807" height="181"></span><br>
<font class="apple-style-span" style="font-weight: normal; text-indent: 0px; line-height: normal; font-style: normal; white-space: normal; letter-spacing: normal; border-collapse: separate; font-variant: normal;" size="4" color="#000000"><font class="apple-style-span" style="font-size: 12px; line-height: 19px;">
</font></font></span><font class="apple-style-span" style="font-weight: normal; text-indent: 0px; line-height: normal; font-style: normal; white-space: normal; letter-spacing: normal; border-collapse: separate; font-variant: normal;" size="4" color="#000000">
</font></span>
</span></p>
发表评论
-
java连接数据库Oracle|DB2|Sql Server|Sybase|Informix|MySQL||PostgreSQL|access
2012-02-08 14:17 1054<div>Java数据库连接(JDBC)由 ... -
llvm
2012-02-07 16:29 875llvm ... -
典型相关分析及其适用范围和spss操作(转)
2012-02-07 15:43 1575看文章《科学学研 ... -
只针对中英文混合分词的中文分词器
2012-02-03 10:39 1005该版本说明 1、只针对中英文混合分词 需要一些中文和 ... -
xml CDATA
2012-02-03 08:45 1203<h2 style="font-si ... -
Qt4.7中 默认的构造函数
2012-02-01 09:14 1082<p><span style=&qu ... -
继续向成熟男人靠拢
2012-01-11 17:04 878转自徒儿的人人。 ... -
ava框架数据库连接池比较(c3p0,dbcp和proxool)bonecp
2012-01-11 14:13 1129<h1 style="text ... -
Ajax 应该变成 Ajaj (关于JSON 与 XML 的比较)
2011-12-28 15:23 958<span style="font- ... -
Problem16
2011-12-28 12:53 663package com.shui.mu.yao.io. ... -
C#坦克大战网络版代码
2011-12-20 13:09 977简单C#坦克大战网络版代码 写完单机版 http ... -
腾讯Q+开放平台,相信又是一次成功的模仿
2011-12-20 10:44 858今天看到两则新 ... -
Wifi
2011-12-19 13:14 1081. Confirm if Wifi is On ... -
提高站点在搜索引擎上的排名
2011-12-19 12:04 933对于拥有网站的各位站长来说,都希望自己的站点能够在各种 ... -
ERP简易教程
2011-12-16 16:47 916注明:下面的帖子 ... -
GeoCon 用C#编写的开源的地理信息数据转换工具
2011-12-14 12:29 955<p class="MsoNorma ... -
JTest
2011-12-14 09:00 1028接到parasoft公司一位先生打来的电话,说下个月第 ... -
Apache License Version 2.0 英文内容及中文翻译
2011-12-13 12:59 2327</span> <p class= ... -
Java中网络操作的开源库CommonsNet
2011-12-13 12:39 815<p class="MsoNorma ... -
CSDN BLOG EXPERT
2011-12-13 08:59 1092<img src="http://p. ...
相关推荐
### JSP Servlet 中的汉字编码问题详解 #### 一、问题背景 在计算机科学领域,尤其是在Web开发中,字符编码问题一直是开发者面临的一个常见难题。特别是在处理非英文字符时,如中文字符,很容易遇到编码不匹配导致...
### JSP/Servlet中的汉字编码问题详解 #### 一、问题背景及重要性 在互联网技术的发展历程中,字符编码一直是影响多语言支持的关键因素之一。对于中文等双字节字符集(DBCS)而言,正确的编码处理尤为重要。《JSP_...
JSP Servlet 中的汉字编码各种问题解决方法
#### 三、JSP/Servlet汉字编码问题概述 在JSP和Servlet环境下处理汉字时,常见的问题包括但不限于以下几点: 1. **字符集不匹配导致乱码**:客户端提交的数据与服务器处理数据时所使用的字符集不同。 2. **页面...
JSP与Servlet中的汉字编码问题.pdf
### JSP与SERVLET中的汉字编码问题解析 #### 概述 在Web开发中,尤其是在使用JavaServer Pages (JSP) 和 Servlets 进行网页动态内容生成时,经常遇到的一个问题是汉字(或者更广泛地说是中文字符)的编码处理。这...
该文档提出了解决jsp开发中常见的汉字编码乱码问题的解决方案,值得参考。
总之,理解中文字符的编码机制,以及JSP和Servlet处理编码的方式,对于解决中文乱码问题至关重要。开发者需要关注编码格式的匹配,确保数据在不同环境间正确转换,以保证应用程序的国际化和本地化功能正常运行。
环境的搭建: ... 6、如果要显示汉字验证码信息,需要把getimg.java中注释掉的汉字验证码部分释放出来,同时将数字和字符验证码部分注释。 运行注意事项: 1、注意包名的大小写情况 2、注意页面的编码问题
Unicode是一种全球通用的字符编码标准,能够支持世界上几乎所有的字符集,而GB2312则主要用于汉字编码,是中国大陆地区常用的一种编码方式。在Web应用中,尤其是在Servlet和JSP环境中,正确的字符编码设置至关重要,...
处理JSP和Servlet中的中文乱码问题是一项常见的任务,通过理解不同编码之间的区别和转换机制,开发者可以有效地避免这类问题的发生。在实践中,推荐使用UTF-8作为统一的字符编码标准,并确保在客户端和服务器端之间...
JSP页面中的字符编码方式与乱码解决方法 在 JSP/Servlet 中,字符编码方式...因此,在 JSP 中正确设置编码方式非常重要,否则可能会导致乱码的问题。同时,浏览器也需要正确地处理编码,以确保正确地显示和传输数据。
【汉字编码的问题】在Web开发中是一个至关重要的主题,因为涉及到多层的编码转换和兼容性问题。在处理汉字时,编码不匹配可能导致乱码,影响用户体验和数据完整性。 首先,我们来了解一下汉字编码问题可能出现的...
在传统的JSP文件上传过程中,由于编码不一致,尤其是遇到非ASCII字符(如汉字)时,可能会导致乱码现象,特别是出现“??”这样的替换字符。JspSmartUpload通过自定义编码方式,确保了文件名和上传数据在处理过程中...
Tomcat.JSP JSWDK环境安装与配置 Resin服务器平台介绍 Resin在...JSP/Servlet 中的汉字编码问题 javamail在JSP中的应用 javamail何志强篇 JDBC精要 jsp在win2k/oracle上的应用 如何用UML为JSP...
通过"中文编码问题.zip"中的实例,我们可以学习如何在实际项目中应用这些解决方案,包括在JSP、Servlet、数据库操作等场景下正确处理中文编码,从而避免乱码问题。通过实践和理解这些案例,开发者能更熟练地处理中文...
在IT行业中,尤其是在Web开发领域,字符编码问题是一个常见的挑战,特别是当涉及到多语言环境时。本主题聚焦于“jsp页面显示中文乱码解决”,这是一个典型的问题,许多开发者在处理包含中文字符的JSP页面时可能会...