36

以下の問題で悩んでいます。JavaScript を使用して、ファイル コンテンツの文字セットを変更し、このコンテンツをユーザーに表示したいと考えています。

input:file フォームがあります。変更時にコンテンツを読んでいます

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

ファイルは Windows-1251 にあります。ファイルの内容を別のエンコーディングに変換してから、ユーザーに提示したいと思います。

これはjavascriptで達成できますか?

よろしく

4

1 に答える 1

65

HTML ページが UTF-8 で、ファイルが ISO-8859-1 の場合。

これは機能しています:

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

Windows-1251 ファイルがないため、テストできませんでしたが、「CP1251」は (少なくとも Google Chrome で) サポートされているようです。

 reader.readAsText(file, 'CP1251');

これのどれも機能していない場合。次に、フォーマットを手動で変更する必要があります。残念ながら、このトリックを行う JavaScript ライブラリを私は知りません。

Unicode マッピングhereおよびDelan Azabani answerから、CP1251 の文字列を char ごとに UTF-8 に変換する関数を作成する必要があります。

于 2012-09-17T16:50:42.853 に答える