2012-04-26 107 views
0

我有一个程序读取文件。在这个文件中有一些我从未见过的疯狂的字符。此文件的目的是将某些信息解析为SQL语句。Java替换字符串中的Unicode字符

当我到该行的文件中“读‘细则...(标题名称’”(注意水平椭圆和左/右引号),它输出到这一点:

。对于(

我只是想替换是正确的与我定义的字符的字符我已经尝试了标题的名称详细信息:

st = st.replaceAll("…","..."); 
st = st.replaceAll("\u2026","..."); 

这是我读文件:

FileInputStream file = new FileInputStream(filePath); 
DataInputStream in = new DataInputStream(file); 
BufferedReader br = new BufferedReader(new InputStreamReader(in)); 

还有其他我不记得的东西。我怎么能做这个看似简单的任务?

+0

你能更具体的,哪些文件你想读什么书? (txt,xls,html等) – choop 2012-04-26 19:34:00

+2

所以你正在读取错误的编码文件,并想替换任意的字符?好吧,我看不出有什么可能会出错;) – Voo 2012-04-26 19:34:47

+0

原始文件在rft中,然后使用Word将其保存到txt。我正在尝试解析txt文件。 – 2012-04-26 19:40:46

回答

0

除非绝对必要,你真的没有放弃那些怪异的(但仍然有意义的)字符...

看一看为InputStreamReader文档和读取文件时指定正确的编码。

+0

你可以给我一个如何调用inputStream的例子吗?目前我有:FileInputStream file = new FileInputStream(filePath); DataInputStream in = new DataInputStream(file); BufferedReader br = new BufferedReader(new InputStreamReader(in)); – 2012-04-26 19:44:11

+0

你会在这里找到一个清晰的例子:http://docs.oracle.com/javase/tutorial/i18n/text/stream.html你将需要找出你的.txt文件在什么特定的编码(并且通过那对构造函数)。 – ChristopheD 2012-04-26 19:48:38

+0

真棒,谢谢! – 2012-04-26 19:51:02

1

你需要指定在读取文件之前替换特价字符编码...

FileInputStream inputStream = new FileInputStream("input.txt"); 
// Specify the enconding 
InputStreamReader streamReader = new InputStreamReader(inputStream, "UTF-8"); 
BufferedReader in = new BufferedReader(streamReader);