文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院网络技术网络管理从原理上解决Tomcat中文问题
精品广告
推荐TOP10
·妙用Start命令
·Windows 超过4G内存管理
·校园机房安装组建过程实战讲解
·教你学习如何破解XP登陆密码
·任务管理器被禁用的恢复
·局域网共享的具体设置
·网络故障诊断排除70例
·宽带拨号连接密码恢复原理
·网管好帮手 最常用的网络命令精萃
·共享:宽带ADSL拨号应用技巧五则
阅读TOP10
·教你学习如何破解XP登陆密码
·任务管理器被禁用的恢复
·校园机房安装组建过程实战讲解
·在2000/xp下禁用USB接口
·修改dll文件工具和说明
·Windows 超过4G内存管理
·恢复IE为默认浏览器
·全套电影播放器.插件及下载工具
·妙用Start命令
·杜绝自动弹出的网页

从原理上解决Tomcat中文问题

日期:2006年12月16日 作者: 查看:[大字体 中字体 小字体]


  很多开源软件都有国际化和本地化的问题,其实国际化本没有那么复杂,只是总有些公司希望通过拒绝国际标准来提高市场占有率,所以也就渐渐导致了现在的情况。很多开源软件首要支持的便是UTF编码,然后才是其他编码。(by gashero)当然也有些不着调的软件首选的是ISO-8859-1编码,甚至是ASCII编码。好了,下面先讲讲编码,因为Tomcat也是一种不着调的软件。

  常见的中文编码有GB2312、GBK、GB18030等等,当然没有包括繁体中文,这些编码都是表示编码,而并非是显示编码。现在越来越多的软件,在其核心使用的显示编码或者说处理编码,是Unicode编码。Unicode编码使用2字节表示了世界上几乎所有的文字符号,作软件的内部国际化处理再适合不过了。

  只是有些龌龊公司,为了商业目的,对内核的Unicode编码API全部屏蔽,对外只提供本地化编码。(by gashero)比如M$公司在中文软件上就主推GBK编码。

  还有一个问题就是用C/C++编写的很老的软件,字符串结束标志是'\0',而使用Unicode的话,会无故的截断一些字符串。所以UTF-8就应运而生了,这种变长编码既可以减小字符串的体积,也可以防止阶段而传输Unicode编码。

  至于传统的英文编码,最常见的就是两种。一是ASCII,这种字符集高位为0,用7位表示数据。另一种是ISO-8859-1,每个字符1字节,用8位表示一个字符。

  Tomcat的内置编码就是使用了ISO-8859-1。这也是本文最关键的一句,各种技巧的根本。

  由此可知由网页所提交的数据就需要从ISO-8859-1解码,如下是获得提交参数number的例子。

  String number=new String(request.getParameter("number").getBytes("ISO-8859-1"),"UTF-8");

  这句就成功的实现了从ISO-8859-1向UTF-8编码的转换。

  有经验的读者应该遇到过通过<jsp:param>标签传递网页间参数时出错的问题。(by gashero)接收到的字符串只要是无论如何都是一堆问号。其实这也是Tomcat内部编码所导致的。如果可以顺应Tomcat的内部编码就可以传递中文字符串了。

  比如一个页面间的内部重定向:

  <?xml:namespace prefix = jsp /><jsp:forward page="index.jsp">

  <jsp:param name="name" value="<%=new String(" % 中文参数?.getBytes(?UTF-8?),?ISO-8859-1?)>" />

  </jsp:forward>

  而在目的页面接收参数的时候也需要再次从ISO-8859-1编码转换到UTF-8编码。这样就实现了在页面之间传递中文参数。



上一篇:rel=nofollow互联网为超链接戴上安全帽

下一篇:QQ第二代密码保护系统启动 让你的QQ更安全


相关软件: 相关文章:
·全面解决Generic host process for win32 services遇到问题需要关闭
·C/C++笔试、面试题目大汇总
·SQL Server不存在或访问被拒绝 问题的解决
·在web页面中打印功能的实现问题集锦
·怎样在Web开发中完美控制IE标题栏
·使用UTF-8编码/JMail组件发送邮件乱码问题
·标题栏字体变小的原因以及根治方法

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号