编码转换问题
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(UnsupportedEncodingException e){
--e.printStackTrace();
------e.printStackTrace();
}
----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;
----}
--}
}
运行java gb2big5 gb.txt big5.txt
可出来的big5是乱码,什么原因?
问题点数:52、回复次数:5Top
1 楼x86(大雪)回复于 2001-01-08 10:04:00 得分 26
我试了你的代码,原理上是可以的,只是有个别有问题,大概是涉及单字节的字符。
你的输出结果是BIG5的,当然需要使用支持BIG5的编辑器啦。我用IE看就没有问题,
只要选好编码就可以了。Top
2 楼robber(海盗)回复于 2001-01-08 10:10:00 得分 26
你的系统支持Big5吗?用工具看看吧!Top
3 楼lingjava(ling)回复于 2001-01-08 10:16:00 得分 0
我用IE可以切换到繁体啊Top
4 楼lingjava(ling)回复于 2001-01-08 10:44:00 得分 0
用big5码可以看http://hk.yahoo.com/之类的繁体网站,但用big5看21cn之类的GB网站看到的就是乱码
to x86
怎样选好编码,我的系统中是安装了繁体字库的
to robber
我的系统应该是支持big5的,因为用IE可以切换到繁体
thanks
Top
5 楼lingjava(ling)回复于 2001-01-08 17:00:00 得分 0
原来已经转换成big5码的文字了,但因为我电脑的系统内码是GBK,所以看到的是乱码,把txt文件放在IE下切换到big5后就可以正确显示了
Top




