2

ある特殊文字があるページがあり、これらの値をJavaScriptで取得するときに奇妙な変換が発生しています。文字「Œ」は「R」に戻り、小文字「œ」は「S」に戻ります。これはjavascriptの制限ですか、それともブラウザかもしれません。これはfirefoxでテストしたものです。また、これはreplクライアント(Jssh/MozRepl)を介して取得されているため、ブラウザではなくクライアント自身が問題になる可能性があります。Javascript特殊文字が間違って戻ってきます

答えて

3

おそらくどこかでエンコードに問題があります。テキストのエンコーディングを誤って処理する機会はたくさんあります。コードを投稿すると、そのコードを見つける手助けをすることができます。

+0

var outstream = transport.openOutputStream(Ci.nsITransport.OPEN_BLOCKING、0、0); これはjavascriptで使用している出力ストリームです(あまり役に立ちませんが、docsはあまり助けてくれないので、firefoxで設定することはできません) –

+1

明らかに、firefoxはnsITransportストリームをUTF-8に設定しています。正しく表示されません。 –

+0

あなたはそれをどのように修正することができたか共有できますか?おそらくいくつかのサンプルコードが役に立ちます。 –

0

非ASCII文字の場合、出力ストリームはスクリプト上安全ではありません。そのため、ストリームをnsIBinaryOutputStream、nsIUnicharOutputStream、またはnsIConverterOutputStreamにラップする必要があります。

+0

私はちょうどそれらを文字コードの配列に変換して出力し、代わりに変換してしまいました。それは、255文字コードを超える文字でしかありませんでした。 nsITransportの優れたドキュメントは見ていませんが、openOutputStreamを使用してこれらのストリームを開くことはできますか? –

+0

あなたは、ラッパーストリームを初期化するときに既存のストリームをパラメーターとして渡します。 – Neil

関連する問題