乱码问题,急!在线等

xiaofenguser 2002-12-09 11:53:29
我用一JSP读一中文文本文件,
开头用<%@ page language="java" contentType="text/html"%>则显示的正确,
而用<%@ page language="java" contentType="text/html;charset=gb2312"%>则显示是乱码(????),(读文件均用的是FileReader),
而用FileWriter再写到另一个文本中去时,两种都成了乱码.(??????)
为什么会这样呢?我该怎么做才能正确的读和写?
急,请帮忙
...全文
17 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hellking 2002-12-09
用inputstream和outputstream,不管你怎么读写肯定不会出问题!
  • 打赏
  • 举报
回复
xiaofenguser 2002-12-09
to wjmmml(笑着悲伤)
谢谢你,这个方法我试过,对这个问题不大管用.因为我是在别人服务器(RESIN)上放置的,在我机器上(RESIN)运行没有问题,我想可能是他的服务器上的编码原因造成的.具体的原因还没找出来.
写文件不管怎么写都是乱码,而读文件加了charset=gb2312反而是乱码,不加就正确,搞得我不知道该怎么办了!
  • 打赏
  • 举报
回复
wjmmml 2002-12-09
:)针对jsp和servlet:
解决办法:
第一:
在jsp页面加入:
<%@ page contentType="text/html; charset=gb2312" %>
或者在servlet里面
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=gb2312");//这是重要的
上面的如果在不行就用如下的方法在数据入库前进行调用:
public static String UnicodeToChinese(String s){
try{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("ISO8859_1"),"gb2312");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}

public static String ChineseToUnicode(String s){
try{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("gb2312"),"ISO8859_1");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}

3:)解决weblogic/webshpere中文问题:
在web.xml文件中需要配置中文环境。r如下:
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>GB2312</param-value>
</context-param>
  • 打赏
  • 举报
回复
xiaofenguser 2002-12-09
我还要对文件进行一些处理,要加入一些内容(从别的表单提交来的)替换原来的内容,试试看.
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
加入

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2002-12-09 11:53
社区公告
暂无公告