2016-06-30 3 views
-2

Perlではchr()関数を使用しています。私の値が0より大きい場合は、値に256を加えてchr()関数を使用します。例えば。 -97の値には256を加えてchr(159)を実行し、Ÿ文字を取得します。Perlのchr()関数とJavaScriptのString.fromCharCode()関数

JavaScriptで同じものを使用する必要があります。

私は-97を取得しています.256を加えてString.fromCharCode(159)を実行すると、空の文字が得られ、String.fromCharCode(376)を実行すると、その代わりに、 Perlで

何が違いますか? JavaScriptで何を使用する必要がありますか?

正の数を表すJavaScriptでは、256を加算した後の数値が256未満の数値はPerlとJavaScriptで同じです。

答えて

0

あなたのPerlはcp1252環境で動作し、JavaScriptはUTF-8で動作します。私にとっては、

perl -e 'print chr 376' 

エンコードとJavaScriptについては、https://mathiasbynens.be/notes/javascript-encodingを参照してください。

+0

返信いただきありがとうございます。 HTMLでmetaタグを使用してキャラクタセットをCP1252に変更できる回避策がありますか?はいの場合、私は使用すべき文字セットは何ですか? – user3710967

+0

@ user3710967:私はcp1252を試してみたい。 – choroba

1

String.fromCharCodeは、その引数としてUnicodeコードポイントをとります。 U + 178(小数点376)はŸです。

Perlのchrは、プログラムが実行する文字セットを使用します。

+0

返事をありがとう。 PERLコードは既にそこにあり、私はJAVASCRIPT/NODE.JS相当物を書く必要があります。私がそれをどうやってできるかを提案できるかどうか見てください。 – user3710967