请教:怎样将big5-->gb2312,高手帮忙

zhanlinghua 2003-08-30 12:07:44
下面是big5.jsp:
<%@ page contentType="text/html; charset=big5" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>givenumber</title>
</head>

<body bgcolor="#8B42D5">
<font size="+2"></font>
<p>test</p>
<form action="examples/servlet/fengren.test" method="get">
<input type="text" name="number">
<input type="submit" value="Ìá½»"
</form>
</body>
</html>

下面是servlet:
package fengren;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class test extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,IOException{
response.setContentType("text/html;charset=gb2312");
String str1=request.getParameter("number");
PrintWriter out=response.getWriter();
out.println(str1);//我在这里检验一下,在big5.jsp
//中textfield中输入的big5字符(这个是肯定正确的),可是在servlet中得到
//却是gb2312字符,这是为什么?
String str=new String();
try{
str=new String(str1.getBytes("big5"),"gb2312");//这段
//代码是我写的big5->gb2312,是否正确?
}
catch(Exception e)
{str=str1;}
out.println(str);
out.println("你好");//为什么不能正确显示,只是“???”
}
}

到底应该怎样将big5字符转换为gb2312字符,最好能给出一段代码示范
谢谢!!
...全文
33 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlecpu 2003-08-30
  • 打赏
  • 举报
回复
GB2312和BIG5码不是所有都能转,如GB中有的字在Big5中没有对应的码,就会变成?,约80%的字能互转
qiuzhongshu 2003-08-30
  • 打赏
  • 举报
回复
下面的代码将 GB2312 文件转换成 Big5 文件,希望对你有用
?

import java.io.*;

import java.util.*;

?

public class gb2big5 {

?

static int iCharNum=0;

?

public static void main(String[] args) {

System.out.println("Input GB2312 file, output Big5 file.");

if (args.length!=2) {

System.err.println("Usage: jview gb2big5 gbfile big5file");

System.exit(1);

String inputString = readInput(args[0]);

writeOutput(inputString,args[1]);

System.out.println("Number of Characters in file: "+iCharNum+".");

}

?

static void writeOutput(String str, String strOutFile) {

try {

FileOutputStream fos = new FileOutputStream(strOutFile);

Writer out = new OutputStreamWriter(fos, "Big5");

out.write(str);

out.close();

}

catch (IOException e) {

e.printStackTrace();

e.printStackTrace();

}

}

?

static String readInput(String strInFile) {

StringBuffer buffer = new StringBuffer();

try {

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();

return buffer.toString();

}

catch (IOException e) {

e.printStackTrace();

return null;

}

}

}

?

编码转化的过程如下:

GB2312------------------>Unicode------------->Big5

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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