【发布时间】:2015-06-04 20:12:17
【问题描述】:
好吧,我试图读取以 ISO-8859-7 编码的文本文件并将其保存在 UTF-8 中,反之亦然,因为该文本文件包含希腊语/拉丁文。我意识到这并不容易(如this question 所述)。
但我也注意到,当我读取以 UTF-8 编码的文本文件并尝试将其保存到 ISO-8859-7 时,它实际上可以正常工作(在文本文件中写入可读字符)。另一方面,当相反的情况成立时,读取 ISO-8859-7 并写入 UTF-8 则结果不是预期的。
那么,我的问题是为什么会发生上述情况?我知道我应该遵循question 中的方法,所以我不需要关于如何使编码工作的答案。是否与 UTF-8 定义的字符多于 ISO-8859-7 的事实有关?
我正在使用以下代码来完成此操作:
BufferedReader reader = BufferedReader(new InputStreamReader(new FileInputStream(file), encoding));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), encoding));
其中encoding 只是代表编码的String。
【问题讨论】: