-1

モバイル アドオンに問題があります。ページの異なる文字セットを使用してスクリプトを作成することによって追加された新しい要素が表示されます。たとえば、「cuadrúpedo」と読めますが、プラグインでは同じ単語が「cuadr¡pedo」と表示されます。

アドオンの先頭に次の行を書き込もうとしましたが、うまくいきませんでした:

document.getElementsByTagName("html")[0].setAttribute("lang", "es");

そこで、次の行のように、特殊文字を unicode に置き換える「コンバータ関数」を書きましたが、うまくいきませんでした。

str.replace( /ú/g, "/xfa־" );

私に何ができる?

4

2 に答える 2

1

おそらくそれはテキストエンコーディングの問題です。

リテラルを含むファイルが、"cuadrúpedo"ansiではなくutf-8として保存されていることを確認してください。

いくつかの重要なファイルは、ANSIエンコードする必要があることに注意してください。これらは、、install.rdfです。この場合、Unicodeエスケープを使用します。chrome.manifestbootstrap.js"cuadr\u00fapedo"

于 2013-01-25T20:35:17.540 に答える
0

JavaScript ファイルが (Gecko 1.8 以降で) chrome:// URL からロードされると、スクリプトの文字エンコーディングを決定するためにバイト オーダー マークが使用されます。それ以外の場合、文字エンコーディングは XUL ファイルで使用されているものと同じになります。したがって、1 つの解決策は、HTTP ヘッダーに Content-Type ヘッダーの一部として文字エンコーディング宣言を含めることができることです。次に例を示します。

Content-Type: application/javascript; charset=UTF-8

バージョン間の互換性のために、ASCII に制限する必要があります。ただし、Unicode エスケープを使用できます。それらを使用して書き直した前の例は次のようになります。

var text = "Ein sch\u00F6nes Beispiel eines mehrsprachigen Textes: \u65E5\u672C\u8A9E";

UTF-8/Unicode に対する JavaScript および Navigator のサポートにより、非ラテン文字、国際文字、およびローカライズされた文字に加えて、JavaScript プログラムで特殊な技術記号を使用できます。Unicode は、多言語テキストをエンコードする標準的な方法を提供します。Unicode の UTF-8 エンコードは ASCII と互換性があるため、プログラムは ASCII 文字を使用できます。非 ASCII 文字入力を受け取るには、クライアントは入力を Unicode として送信する必要があります。

Javascript でテキストをエスケープおよびエスケープ解除するための Web ページがあります: http://0xcc.net/jsescape/

ソース: https://developer.mozilla.org/en-US/docs/International_characters_in_XUL_JavaScript https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Unicode

于 2013-06-14T18:36:17.733 に答える