次の問題で苦労しています。 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で達成できますか?
よろしく
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 Azabanianswer から、CP1251の文字列を文字ごとにUTFに変換する関数を構築する必要があります-8。