我正在写一个Java程序,将数据保存到UTF8的文本文件来表示。不过,我还想提供选项以保存到IBM437,以便与使用相同类型数据文件的旧程序兼容。检查数据是否可以在指定的编码
如何检查用户试图保存的数据是否无法在IBM437中表示?此刻文件保存时没有抱怨,但结果是不正常的字符被替换为问号。
我更喜欢它,如果我可以向用户显示警告,说明他们正在保存的数据在IBM437中不受支持。然后用户可以选择用最接近的ASCII等价物手动替换字符。
电流节省代码:
String encoding = "UTF-8";
if (forceLegacySupport)
{
// Force character encoding to IBM437
encoding = "IBM437";
}
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(saveFile.getAbsoluteFile()), encoding));
IOController.writeFileToDisk(bw);
bw.close();
什么代码,你目前正在使用保存数据? –
字符集有一个返回CharsetEncoder的getEncoder()方法。 CharsetEncoder有一个返回布尔值的canEncode(char)方法。 javadoc非常有用。 –
由于在javadoc中遗漏了@JBNizet,我深表歉意。 – PeteBrew