java 读取linux xml文件_dom4j读取linux下的xml文件时,如果文件中有中文,就出现乱码,在win环境下正常...

dom4j读取linux下的xml文件时,如果文件中有中文,就出现乱码,在win环境下正常,

用java读取mysql数据库中的数据都正常,没有乱码问题,

环境是rh9+tomcat+mysql

通过以下办法没有解决,请兄弟们帮忙:

1.   先在web.xml中加filter

Set   Character   Encoding

com.filter.SetCharacterEncodingFilter

encoding

GB2312

2.只要是jsp页面都做处理:

3.因为dom4j在写xml(format.setEncoding("GBK")中不支持GB2312所以所有写出的xml都是:

用以上方法将文件放到linux下,浏览时中文全变成?????

dom4j读写xml的文件是:

package   com.menu;

import   java.io.File;

import   java.io.FileWriter;

import   java.util.Iterator;

import   java.util.List;

import   org.dom4j.Attribute;

import   org.dom4j.Document;

import   org.dom4j.DocumentHelper;

import   org.dom4j.Element;

import   org.dom4j.io.OutputFormat;

import   org.dom4j.io.SAXReader;

import   org.dom4j.io.XMLWriter;

import   com.config.xml_path;

import   org.apache.log4j.Logger;

public   class   XMLMenu

{

Logger   log   =Logger.getLogger(this.getClass());

public   XMLMenu()

{

}

public   String   getXMLMenu()   throws   Exception

{

StringBuffer   message   =   new   StringBuffer();

try{

xml_path   xmlpath=new   xml_path();

SAXReader   saxReader   =   new   SAXReader();

Document   document   =   saxReader.read(new   File("/home/web/test/xml/menu/menu.xml"));//菜单路径

List   list   =   document.selectNodes("/菜单/栏目/@name"   );

List   list_nodes=document.selectNodes("/菜单/栏目");

Iterator   iter   =   list.iterator();

Iterator   iter2   =   list_nodes.iterator();

while(iter.hasNext()){

Attribute   attribute=(Attribute)iter.next();

message.append(attribute.getValue()+":");

Element   menuElement   =   (Element)iter2.next();

Iterator   iterator   =   menuElement.elementIterator("名称");

Iterator   iterator2   =   menuElement.elementIterator("链接地址");

while(iterator.hasNext()){

Element   titleElement=(Element)iterator.next();

Element   hrefElement=(Element)iterator2.next();

message.append(hrefElement.getText()+"="+titleElement.getText()+",");

}

message.append("|");

}

}   catch(Exception   ex){

ex.printStackTrace();

log.debug("xml读取不成功");

}

return   message.toString();

}

}

要读取的xml文件是这样的:

网站信息配置名称>

Admin_SiteConfig.jsp链接地址>

main链接目标>

12权限>

系统博客分类管理名称>

admin_usertype.jsp链接地址>

main链接目标>

12权限>

日志敏感字过滤管理名称>

Admin_filtrate.jsp链接地址>

main链接目标>

12权限>

管理屏蔽IP名称>

Admin_iplock.jsp链接地址>

main链接目标>

12权限>

友情链接管理名称>

admin_friendsite.jsp链接地址>

main链接目标>

12权限>

修改注册条款名称>

Admin_regtext.jsp链接地址>

main链接目标>

12权限>

栏目>

写新日志名称>

user_addblog.jsp链接地址>

main链接目标>

12权限>

日志管理名称>

user_blog.jsp链接地址>

main链接目标>

12权限>

日志评论管理名称>

user_comment.jsp链接地址>

main链接目标>

12权限>

修改公告名称>

user_placard.jsp链接地址>

main链接目标>

12权限>

栏目>

注册用户管理名称>

admin_user.jsp链接地址>

main链接目标>

12权限>

用户改名名称>

newhouse.jsp链接地址>

main链接目标>

12权限>

添加管理员名称>

admin_admin.asp链接地址>

main链接目标>

12权限>

栏目>

菜单>

答案一:

读取xml文件是使用系统的本地编码,   win默认的就是中文当然不会乱码了,   你看看linux下默认的字符编码是什么,   如果是iso8859的话,   你只有在读取xml文件内容后进行转换了,   如果是utf-8(rh9一般默认就是它),   就需要将xml文件内容以utf-8的方式存储(用记事打开后,另存为时,选择要存储的字符编码)

答案二:

用UTF-8,页面也setEncoding..,如果还不行,你看看linux的字库是不是不全,我估计是前面就可以解决了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值