救救我,怎么将文件编码从UTF-8转换为ANSI(gb2312)?

jafan 2002-12-17 09:01:26
我想用下面的jsp文件将文件编码从UTF-8转换为ANSI(gb2312),结果总是失败。恳请大虾帮我修改一下吧,

-----------------
transform.jsp:


<%@ page contentType="text/html; charset=gb2312" %>

<%@ page language="java" import="java.io.*" %>
<%@ page language="java" import="java.awt.*" %>

<html>
<head><title>文件格式转换</title></head>

<body>

hello, start.....<br>
<%
String iFile=request.getRealPath("./scc.htm"); //输入的源文件
String oFile=request.getRealPath("./sccturned.htm"); //输出的目标文件

//FileInputStream inStrm=new FileInputStream(iFile);

PrintWriter pw=new PrintWriter(new FileOutputStream(oFile)); //输出writer
//FileReader fr=new FileReader(new InputStreamReader(new FileInputStream(iFile)));

String s="hello";

byte buff[] = new byte[800];
//char buff[] = new char[800];
try {
InputStream fileIn = new FileInputStream(iFile);
//Reader fileIn = new FileReader(iFile);

int i = fileIn.read(buff);
s = new String(buff);
out.println(s+"<br><br>");

s=new String(s.getBytes("UTF-8"),"GB2312");
//s=new String(s.getBytes("asci"),"GB2312");
//s=new String(s.getBytes("unUnicode"),"GB2312");

out.println(s);
}
catch(FileNotFoundException e) {
}
catch(IOException e) {
}

pw.println(s); //一次写入一行从输入文件中的数据
pw.println("我要死了!<br>Happy birthday!");

pw.close();
%>
<br> end.
</body>
</html>
...全文
709 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jafan 2002-12-18
  • 打赏
  • 举报
回复
谢谢 nbm0(西伯利亚) !这里的“不成功”指的是转换后的文件显示还是乱码。加了pw.flush();还是乱码。

不过,现在已经解决了。参考文件:

-----------------
transform.jsp:

<%@ page contentType="text/html; charset=gb2312" %>

<%@ page language="java" import="java.io.*" %>
<%@ page language="java" import="java.awt.*" %>

<html>
<head><title>文件格式转换</title></head>

<body>

hello, start.....<br>
<%
String iFile=request.getRealPath("./jsp/dealformat/scc.htm"); //输入的源文件
String oFile=request.getRealPath("./jsp/dealformat/sccturned.htm"); //输出的目标文件

PrintWriter pw=new PrintWriter(new FileOutputStream(oFile)); //输出writer

String s="hello";

try {
FileInputStream fin=new FileInputStream(iFile);
InputStreamReader fileIn=new InputStreamReader(fin,"UTF-8");
BufferedReader infm= new BufferedReader(fileIn);

while(true)
{
s=infm.readLine();
if(s==null)break;
out.println(s);
pw.println(s); //一次写入一行从输入文件中的数据
}

}
catch(FileNotFoundException e) {
}
catch(IOException e) {
}

pw.println("我要死了!<br>Happy birthday!");

pw.close();
%>
<br> end.
</body>
</html>
nbm0 2002-12-17
  • 打赏
  • 举报
回复
还有:

你的头文件改为:
<%@ page language="java" import="java.io.*" contentType="text/html; charset=gb2312" %>

不明白你的"不成功"具体是怎么样的????????????????
nbm0 2002-12-17
  • 打赏
  • 举报
回复
在pw.println();
后面写pw.flush();就可以了

这样的情况,一般您应该断点调试,分析那一行出错!
并且这样的情况,您最好把逻辑写在javaBean里面,在cmd下用javac *.java进行编译,很方便的!

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧