使用javascript的FileReader获取/设置文件编码

the*_*man 22 javascript encoding character-encoding filereader

我正在努力解决以下问题.使用javascript我想更改文件内容的字符集并将此内容显示给用户.

我有一个输入:文件表单.在改变时我正在阅读内容

$('#form input:file').change(function(event){                   
   file = this.files[0];
   reader = new FileReader();
   reader.onload = function(event) {
      result = event.target.result.replace(/\n/g,'<br />');
      $('#filecontents').html(result);
   });
   reader.readAsText(file);
})
Run Code Online (Sandbox Code Playgroud)

该文件位于Windows-1251中.我想将文件的内容转换为另一种编码,然后将其呈现给用户.

这有可能用javascript实现吗?

问候

Flo*_*ain 42

如果您的HTML页面是UTF-8,而您的文件是ISO-8859-1.

这是有效的:

 reader.readAsText(file, 'ISO-8859-1');
Run Code Online (Sandbox Code Playgroud)

我没有任何Windows-1251文件,所以我无法测试它,但看起来支持'CP1251'(至少谷歌Chrome),所以:

 reader.readAsText(file, 'CP1251');
Run Code Online (Sandbox Code Playgroud)

如果这些都不起作用.然后你应该手动更改格式.不幸的是,我不知道任何JavaScript库可以解决这个问题.

这里的unicode映射和Delan Azabani 回答,您应该设法构建一个函数,将char中的字符串转换为CP1251中的字符串转换为UTF-8.