我正在尝试将字符串翻译成斯洛伐克语字母(8859-2编码) 通过我创建的匹配表。 问题是一些字符实际上没有改变,输出字符串显示“?”对于一些斯洛伐克人来说。
我该怎么做? 我先做了类似的事情:
File tempFile = File.createTempFile("buffer", ".tmp");
FileWriter fw = new FileWriter(tempFile);
Reader fr = new FileReader(fileOriginal);
BufferedReader br = new BufferedReader(fr);
while (br.ready()) {
fw.write(br.readLine().replace("#/e#" , "ě").replace("#>E#" , "É")
}
但有些字符未正确替换。
例如,在这个字符串中:“allo#> e#de#> E#”(只是一个例子), 它应该给我“alloědeÉ”,但它给了我“allo?de?”因为UTF-8无法识别这些字符。 我需要做什么才能让我的java程序识别它?
提前致谢。
答案 0 :(得分:1)
这样的事情对你有用吗?
BufferedReader br = new BufferedReader(new InputStreamReader(fr,"UTF-8"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fw,"8859-2"));
while (br.ready()) {
bw.write(br.readLine());
}
此代码读取以UTF-8编码的文件内容,并通过编码在8859-2中写入。