论坛
门户
内部优惠
喜欢
话题
VIP会员
搜索
新浪微博
登录
注册
100%
100%
首页
>
软件开发
>
java语言
>
JAVA编码问题的一些理解-JSP教程,Java技巧及代码
回复
« 返回列表
111111
精灵王
注册日期
2010-12-08
发帖数
640
QQ
火币
1103枚
粉丝
120
关注
75
加关注
写私信
打招呼
阅读:
5172
回复:
0
JAVA编码问题的一些理解-JSP教程,Java技巧及代码
楼主
#
更多
只看楼主
倒序阅读
发布于:2011-01-26 21:27
保存
100%
100%
[]
1
java
语言默认的编码方式是unicode ,而我们中国人通常使用的文件和数据库都是基于 gb2312 或 big5 等方式编码的,怎样才能够恰当地选择汉字编码方式并正确地处理汉字的编码呢?本文将从汉字编码的常识入手,结合 java 编程实例,分析以上两个问题并提出解决他们的方案:
1.在jsp程式中加入一条语句:
<%@page contenttype="text/html;charset=gb2312" %>
2.在url请示字符串的编码问题。
如果通过get/post方法从客户端传递过来的信息中包含汉字信息,servlet/jsp无法得到正确的值。
我们在调用request.getparameter("param_name")前指定应用程式所希望的编码方式。
也就是request.setcharacterecoding()即可
3.在不同的平台编码的问题是不同的。
在linux平台上的标准是iso8859_1,而在win2k下是gbk的,这些是默认的标准,如果你的服务器不是这样的,那么编译的问题一定会有问题。本人就遇见这样的问题,两台linux服务器,一台lang=en,一台lang=en,utf8,被我搞了n长时间才找到原因。
3.我本人用的最多的转换编码的一个类(在linux平台),几乎能解决所有的编码问题。类的方法非常解决。主要就是asc2gb()和gb2asc()这两个类。
package com.whaic.tools;
import java.io.unsupportedencodingexception;
public class ecov
{
public static string asc2gb(string asc){
string ret;
if(asc==null)return asc;
try{
ret=new string(asc.getbytes("iso8859_1"),"gb2312");
}
catch(unsupportedencodingexception e){
ret=asc;
}
return ret;
}
public static string gb2asc(string gb){
string ret;
if(gb==null)return gb;
try{
ret=new string(gb.getbytes("gb2312"),"iso8859_1");
}
catch(unsupportedencodingexception e){
ret=gb;
}
return ret;
}
}
4.读写文件时的中文问题:
read::
fileinputstream fis = new fileinputstream(strinfile);
inputstreamreader isr = new inputstreamreader(fis, "gb2312");
reader in = new bufferedreader(isr);
int ch;
while ((ch = in.read()) > -1) {
icharnum += 1;
buffer.append((char)ch);
}
in.close();
write::
fileoutputstream fos = new fileoutputstream(stroutfile);
writer out = new outputstreamwriter(fos, "big5");
out.write(str);
out.close();
以上仅仅是本人是日常使用中遇见的一些问题和解决方案。由于国际化的工作并不是在国内完成的,所以在这些基本类发布之前,没有经过严格的测试,所以对中文字符的支持并不像 java soft 所声称的那样完美。java 编程语言成长于网络世界,这就需求 java 对多国字符有非常好的支持。 java 编程语言适应了计算的网络化的需求,为他能够在网络世界迅速成长奠定了坚实的基础。 java 的缔造者 (java soft)已考虑到 java 编程语言对多国字符的支持,只是目前的解决方案有非常多缺陷在里面,需要我们付诸一些补偿性的措施。而世界标准化组织也在努力把人类所有的文字统一在一种编码之中,其中一种方案是 iso10646 ,他用四个字节来表示一个字符。当然,在这种方案未被采用之前,还是希望 java soft 能够严格地测试他的产品,为用户带来更多的方便。
喜欢
0
评分
0
最新喜欢:
回复
100%
发帖
回复
« 返回列表
普通帖
您需要登录后才可以回帖,
登录
或者
注册
100%
返回顶部
关闭
最新喜欢