【发布时间】:2016-11-24 15:29:14
【问题描述】:
想要将用户输入的文件简单地读取为文本。
可以依赖现代浏览器的使用,所以我使用 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) 是否会抛出任何我可以捕获的错误?
我不希望为此使用任何主要的 3rd 方库。
额外问题:
有没有一种简单的方法来获得值的有意义翻译,例如cp10029 表示Mac(中欧)?
【问题讨论】:
-
对谷歌的粗略搜索并没有发现太多信息。也许这会有所帮助? stackoverflow.com/questions/37884928/…
-
谢谢,我用谷歌搜索了很多,这就是我在这里问的原因:-(我检查了你的建议,但这指的是无真实文本输入恕我直言,但在我的情况下,所有文件都是“真实的” text" 仅以不同的编码输入。
-
支持的代码页可以在here找到。我建议再看一下 Dan 提供的链接,因为这是一个很好的方法。这种方法还可以让您检测 BOM 和特征,以便提前猜测编码。
标签: javascript html encoding filereader