JBoss中文乱码问题办理策划[Java编程]
本文“JBoss中文乱码问题办理策划[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在从weblogic系统迁移到jboss系统的时刻,中文存储到数据库和XML文件呈现乱码.
我利用的是jboss3.0.8jetty版.
这是由于JBOSS中传送变量默许的ISO-8859-1的西文字符集.
我的办理办法是直接改正org.mortbay.jetty.jar.这样不用在程序中写很多转换历程.
首先到http://sourceforge.net/project/showfiles.php?group_id=7322,但凡叫 xxxx-src.tar.gz 的,都是源代码.我下载的是jetty-4.2.20RC0-all.
在../jboss-3.0.8/server/default/deploy/jbossweb.sar目录下,需求改正org.mortbay.jetty.jar中的orgmortbayhttp下的HttpRequest.java
下面是代码改正部份:
private void extractParameters()
{
if (_paramsExtracted)
return;
_paramsExtracted=true;
if (_parameters==null)
_parameters=new MultiMap(16);
// Handle query string
String encoding=getCharacterEncoding();
if (encoding==null)
{
// No encoding, so use the existing characters.
//anita modify
//encoding=StringUtil.__ISO_8859_1;
encoding=StringUtil.__GBK;
_uri.putParametersTo(_parameters);
}
else
{
// An encoding has been set, so reencode query string.
String query=_uri.getQuery();
if (query!=null)
{
try
{
//anita modify
//byte[]qbytes=query.getBytes(StringUtil.__ISO_8859_1);
byte[]qbytes=query.getBytes(StringUtil.__GBK);
UrlEncoded.decodeTo(qbytes,0,qbytes.length,_parameters,encoding);
}
catch(Exception e)
{
_uri.putParametersTo(_parameters);
}
}
}
在注释了“//anita modify”的部份下,是关键的替换部份.
目前才做了一小部份工作哦,还要持续.在StringUtil下并没有__GBK办法,那我们就增添自己需求的这段代码.
到orgmortbayutil下,翻开StringUtil.java
我们需求做的是在源程序中增添以下代码:
//anita add for GBK
public static String __GBK;
static
{
String GBK=System.getProperty("GBK");
if (GBK!=null)
__GBK=GBK;
else
{
try{
new String(new byte[]{(byte)20},"GBK");
__GBK="GBK";
}
catch(java.io.UnsupportedEncodingException e)
{
__GBK="GBK";
}
}
}
以上是“JBoss中文乱码问题办理策划[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |