关于中文问题

原创 2001年05月30日 12:20:00
不少朋友曾对虚拟小龙亭的中文显示提出了意见和建议,谨在此表示感谢。

在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下应该没有这样的问题。

javaee ssh框架下mysql中文乱码解决办法

1、修改my.ini文件(数据库安装根目录),改为utf8(红色箭头部分) 2、手动创建数据库                               create database db_t...
  • jingzailongxin
  • jingzailongxin
  • 2015年11月19日 15:33
  • 523

SSH开发中解决mysql数据库的乱码问题

(1)第一点要保证 就是创建数据库的时候 使用的编码方式 和连接数据库的 编码格式是一样的! (2)在web.xml文件中配置过滤器(由spring提供的过滤器) ...
  • u010870518
  • u010870518
  • 2014年12月08日 13:20
  • 1583

VS2008编译boost正则表达式库Regex过程中的注意事项

目前,boost最新版本是:boost_1_63_0 boost官网:http://www.boost.org/ boost1.48.0源代码官方下载页面:http://sourceforge.n...
  • xiliang_pan
  • xiliang_pan
  • 2017年04月24日 14:40
  • 358

《C++primer》第一章--开始

《C++primer》读书心得体会 内容理解和思考 重要知识笔记 初识标准输入输出 注释不能嵌套 for循环的执行过程...
  • Neil4
  • Neil4
  • 2017年04月03日 14:15
  • 570

关于Linux下中文显示不正常的问题的一点经验

关于Linux下中文显示不正常的问题的一点经验在安装系统的时候语言选择一定要选简体中文这个选项,不安装的话显示中文是就会出现乱码,当你在登录时不选择简体中文时有一些中文字也会显示不正常,而且用简体中文...
  • ventry
  • ventry
  • 2006年06月21日 00:15
  • 1520

关于CppSqlite中数据库文件中文路径识别问题的解决法

from:http://blog.sina.com.cn/s/blog_65fd6a0a0100h0xu.html 这个问题网上给出了很多解决方法,大致就是sqlite原生不支持中文路径,需要对中文...
  • loftyscholar
  • loftyscholar
  • 2012年05月17日 10:23
  • 1921

关于产品推荐的10个问题

许多零售商使用自动的产品推荐技术来增加他们的销售额和转化率。这些推荐的物品通常是商业站点上动态生成的,通常基于特定客户或一组客户的购买习惯。 Strands Recommender 是一个领先的...
  • ozhaohuafei
  • ozhaohuafei
  • 2014年07月05日 19:58
  • 1789

swing 输入中文时的问题

http://topic.csdn.net/u/20080218/13/606418c5-cbcd-47cf-aebc-16361ff0ed50.html  其实这个问题出在jre rt.jar 中的...
  • xuhuandh
  • xuhuandh
  • 2010年01月24日 22:38
  • 306

关于读书的几个问题

读书,并不是穷酸秀才秀穷秀酸的时候才出来卖弄于人的。笛卡儿说:“读一切好书,就是和许多高尚的人谈话。”读书中的愉悦和享受,体现在精神、境界上的享受和在慎思方面的提升,自不是网络冲浪中能够获得的。“书中...
  • sxhelijian
  • sxhelijian
  • 2013年09月30日 08:19
  • 4213

关于Karrigell中文问题

在使用Karrigell-2.4.0过程中,从库里查询出来的数据在页面表示的时候,不知道怎么搞得,编码总是iso码,修改Karrigell.ini配置文件:outputEncoding = utf-8...
  • joliny
  • joliny
  • 2008年06月18日 11:31
  • 1013
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于中文问题
举报原因:
原因补充:

(最多只允许输入30个字)