今天偶然被问到这个问题。
mozilla有个专门转编码的xpcom。读文件之后或写文件之前我们应该转一下,以确保不会出现乱码。
// 将字符类型转为UTF-8,防止乱码出现,通常用于读文件 this.convertToUnicode = function(aStr) { try { var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"] .createInstance(Components.interfaces.nsIScriptableUnicodeConverter); converter.charset = "UTF-8"; var content = converter.ConvertToUnicode(aStr); return content; } catch (e) { } }
// 字符集转换(from)通常用于写文件 this.convertFromUnicode = function(aStr) { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"] .createInstance(Components.interfaces.nsIScriptableUnicodeConverter); converter.charset = "UTF-8";// 或者"GB2312" var content = converter.ConvertFromUnicode(aStr); return content; } catch (e) { } }