问个文本编码转换的问题
一个文本是Unicode big endian编码,如果将其转换为UTF-8或者ansi?谢谢 补充一下,我的目的就是用java读取文本的内容,但用unicode big endian编码的文本读到的内容是字符间插了好多小方格,如果把小方格拿掉就对了。我截了幅图。
其实用excel打开这种文本在另存成txt文件就变成ansi编码,但是一个一个文件这样弄实在太麻烦了,有几千个这样的文件待处理。
在重复一下我的问题,如果用java正确读出unicode big endian编码的文本? 用文本打开,再另存为你想要的格式,不知道理解的对不对。我用手机看小说的时候也有这样的转换格式问题,都是这样解决的 谢谢楼上的回答,不过没有解决问题。
而且很明显你没有看我第二个帖子,^_^ 参考java.nio.charset.Charset的API说明,我想可以解决你的问题。
Charset.forname("UTF-16BE") 创建一个Charset实例,然后调用decode可以返回Unicode编码。 多谢不服兄的答复。不过我实在不想用excel的宏。
用java就无法读取unicode big endian编码的文本么?下面是一小段code,理论上没有问题,不知为什么程序就是作不下去。
File file = null;
InputStreamReader in = null;
BufferedReader buf_reader = null;
String line;
file = new File("cs123.txt");
try
{
in = new InputStreamReader(new FileInputStream(file),"UTF-16BE");
System.out.println(in.getEncoding());
buf_reader = new BufferedReader(in);
while((line = buf_reader.readLine())!=null) 到这里就作不下去了
System.out.println(line);
}
如果有朋友感兴趣,我把unicode big endian编码的文本给你发过去,多谢。 你这样输出的是Unicode吧。如果用普通的文本编辑器打开(按ANSI解码),好像就是会有空格的。你试着,一个一个字符输出看看。或者Debug一下,看看到底内存的数据是什么样的。 非得Java吗?iconv? Java绝对可以做。而且应该不难。只要Encoding,Decoding设对了,肯定很简单。只不过最近比较忙,没时间仔细试了。
[ Last edited by GilbertLi on 2004-12-4 at 08:35 ]
页:
[1]