2017-02-23 1 views
2

オランダ語の文字列があります。私はPHPを使ってそれらをエンコードする方法を知っていますWindows-1252をJS-UTF-8に変換する

$str = iconv("Windows-1252", "UTF-8", $str); 

Javascriptでこれと同等のものは何でしょうか?

+2

私は、これはJS – evolutionxbox

+0

@evolutionxboxでのものであるかどうかを確認するために興味があると思います。私も。 –

+0

私は何の反応も得ていないので、私はAJAXで変換を行うことを考えましたが、まだ問題に終わりました。だから誰かがこれを読んでいる場合は、私の新しい質問を見ることができるかもしれないhttp://stackoverflow.com/questions/42432964/character-conversion-working-different-for-fgetcsv-and-jquery-get-with-ajax –

答えて

2

Windows-1252はシングルバイトエンコーディングです。これは非常に便利です。ルックアップテーブルを作成するだけです。

<?php 
$s = ''; 

for ($i = 0; $i < 256; $i++) { 
    $converted = iconv('Windows-1252', 'UTF-8', chr($i)); 

    if ($converted === false) { 
     $s .= "\xef\xbf\xbd"; # UTF-8 replacement character 
    } else { 
     $s .= $converted; 
    } 
} 

echo $s; 

あなたは結果として(むしろUTF-8以外)通常のJavaScriptの文字列をしたいと仮定すると、入力は、各文字のUnicodeは、実際のWindows-1252 1を表し、コードポイントの文字列であることを、結果のテーブルを読み取ることができますリテラルJavaScriptの文字列に入れUTF-8、出来上がりのとおり

var WINDOWS_1252 = '\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !"#$%&\'()*+,-./:;<=>[email protected][\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'; 

function fromWindows1252(binaryString) { 
    var text = ''; 

    for (var i = 0; i < binaryString.length; i++) { 
     text += WINDOWS_1252.charAt(binaryString.charCodeAt(i)); 
    } 

    return text; 
} 
+0

ありがとうあなたの答えです。私はそれを完全に理解できませんでした。私の問題を最もよく説明するために、私は新しい質問を作成しました。あなたはそれをここで見ることができるかもしれません。http://stackoverflow.com/questions/42432964/convert-windows-1252-to-utf-8-with-ajax –

+0

@KiranDash:UTF-8でCSVをあなたのエンコードしてみませんか?元の 'iconv'ですか?そうすれば、サーバーへの1回の往復だけで済みます。 – Ryan

関連する問題