我正在寫一個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