快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

关于JSP中文问题

在jsp中,中文乱码常会让人心乱如麻。


对于
中文处理的常见对策,在网上常常可见的主要是下面2种:
<%@ page
contentType="text/html;charset=gb2312" %>
或者:
<%
String Hi="你好";
byte[]
tmpbyte=Hi.getBytes("ISO8859_1");
Hi=new
String(tmpbyte);
out.print(Hi);
%>

虚拟小龙亭也主要采用了上面2种方式进行了修改,从而变成了1.1版。
通过简朴总结,示例中的中文处理发生于以下几个地方:

1 在url附带中文参数,可以直接读取。
例如:
<%= request.getParameter("showword")%>

2
与数据库有关的各种sql操作
这里使用的Access没有发生问题。


3 读取HTML
form表单中递交的中文值

在jswdk中需要加以编码,较为简洁的写法如:
String name1=new
String(request.getParameter("user_id").getBytes("ISO8859_1"));
另外,在jdk1.3的支持下,不需要加入
<%@
page contentType="text/html;charset=gb2312"
%>
而在jdk1.2.2下面,即使2种方式同时运用也很不稳定。

而在resin平台,情况较好。只要在页面第一行加入:
<%@
page contentType="text/html;charset=gb2312"
%>即可准确处理中文。
假如再加编码则反而不对。

5
session中包含的中文
在jswdk中,希奇的是假如从form中读出的值经过编码则可准确显示;
但直接赋予中文值则不行。
resin平台很好,同上。

6 对于对变量赋中文值后准确显示中文。
例如以下程序:
<%@ page contentType="text/html;charset=gb2312"
%>
<html><head></head><body>
<%
String
Hi="你好";
byte[] tmpbyte=Hi.getBytes("ISO8859_1");
Hi=new
String(tmpbyte);
out.print(Hi);
%>
</body></html>
同样是jswdk1.0.1,以上的表示方式在jdk1.2.2中没有问题,但在jdk1.3下却无法显示。
resin平台很好,同上,经过测试,只需要在<head>中补上
<meta
http-equiv="Content-Type" content="text/html;
charset=gb2312">
而不需要<%@ page
contentType="text/html;charset=gb2312" %>也能准确显示中文。

体会:
jswdk也许只能用于普通开发,稳定性和其它问题可能不如商业软件。
由于jdk1.3版性能要好于jdk1.2.2很多倍,并且对中文的支持也较好,所以应该加以采用。

作为免费的商业软件,resin不仅速度快,稳定,自动编译,可指出出错行,可在服务器端支持使用javascript等,而且,至少我觉得对中文的支持很好。

当然,假如不必做任何处理即可准确显示中文将是我们所期待的。

另外,相信在unix/linux/solaris下应该没有这样的问题。
返回类别: 教程
上一教程: 用标记库国际化JSP(2)
下一教程: 利用UDP SOCKETS技术实现IP多点传送

您可以阅读与"关于JSP中文问题"相关的教程:
· 关于JSP中,中文问题(泛指字符问题),以及常见错误调试手记
· 关于JSP中文问题的解决方式
· MYSQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方式总结
· 关于Java中文问题的几条分析原则
· 解决JSP开发WEB程序中的中文问题
    微笑服务 优质保证 索取样品