Get/set file encoding with javascript's FileReader

£可爱£侵袭症+ 提交于 2019-11-30 12:35:32

问题


I am struggling with the following problem. Using javascript I would like to change the character set of a file content and display this content to the user.

I have an input:file form. On change I am reading the content

$('#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);
})

The file is in Windows-1251. I would like to convert the content of the file to another encoding and after that present it to the user.

Is this possible to achieve with javascript?

Regards


回答1:


If your HTML page is in UTF-8 and your file is in ISO-8859-1.

This is working:

 reader.readAsText(file, 'ISO-8859-1');

I don't have any Windows-1251 file so I was not able to test it but it looks like that the 'CP1251' is supported (by Google Chrome at least), so:

 reader.readAsText(file, 'CP1251');

If none of this is working. Then you should change the formatting manually. Unfortunately, I am not aware of any JavaScript library that does the trick.

From the unicode mapping here and from Delan Azabani answer, you should manage to build a function that convert char by char your string in CP1251 to UTF-8.



来源:https://stackoverflow.com/questions/12448595/get-set-file-encoding-with-javascripts-filereader

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!