想要将用户输入的文件简单地作为文本读取。
可以依赖现代浏览器的使用,因此我使用 FileReader 来实现这一点(效果很好)。
reader.readAsText(myfile, encoding);
我知道encoding
默认为UTF-8。
但因为我的用户将上传来自各种来源(Windows,Mac,Linux)和各种浏览器的文件,所以我要求用户通过选择框提供编码。
例如,对于西欧Windows文本文件,我希望用户选择例如windows-1252。
我找不到 FileReader 支持的编码列表(假设这至少取决于浏览器)。
我不打算自动确定编码,我只是想以以下方式填充我的选择框:
<select id="encoding">
<option value="windows-1252">Windows (Western Latin)</option>
<option value="utf-8">UTF-8</option>
<option value="...">...</option>
</select>
我的问题是:
- 我从哪里获取支持的编码列表来填充选项值?
- 如何确定这些值的确切书写方式(是 'utf8' 还是 'UTF-8',或者其他),这些取决于操作系统 / 浏览器吗?
- 如果不支持编码,则是否会因 readAsText(myfile, unsupportedEncoding) 抛出错误,我可以捕获该错误?
我希望不使用任何主要第三方库。
奖励问题:
是否有一种简单的方法来获取值的有意义的翻译,例如 cp10029 表示 Mac (中欧)?