0

®実際にその文字をJavascriptに入力するとスクリプトが奇妙に動作するため、Firefoxの(登録文字)をエスケープ解除してフォームに送信します。

ただし、バックエンド(制御できない)に送信されているため、エスケープされていない(..)バージョンの文字を使用する必要があります。出力は、エスケープ®されていないバージョンを使用してpdfで表示するpdfファイルです。

®私はこのようにキャラクターをエスケープ解除します:

unescape("%AE")

ただし®、PDFファイルでを表示すると®、これはFirefoxでのみ発生し、InternetExplorerでは発生しません。

これをFirefox2/3で機能させる方法はありますか?

ありがとう、
   アンドリュー

4

1 に答える 1

3

私の知る限り、エスケープ解除後、Mozilla は の Unicode 表現を返しますが®、IE は返しません。(「%C2%AE」は 16 進数で、PDF に表示さ%C2れる奇妙な文字を意味しÂます。) Internet Explorer と Mozilla は、文字列を別の方法でエスケープ解除します。明示的な文字エンコーディング (主に UTF-8) を設定する必要があります。

MDC: エスケープおよびアンエスケープ機能:

escape および unescape 関数は、非 ASCII 文字に対しては正しく機能せず、推奨されていません。JavaScript 1.5 以降では、encodeURI、decodeURI、encodeURIComponent、decodeURIComponent を使用します。

MSDN :

unescape メソッドは、charstring の内容を含む文字列値を返します。%xx 16 進形式でエンコードされたすべての文字は、対応する ASCII 文字セットに置き換えられます。

%uxxxx 形式でエンコードされた文字 (Unicode 文字) は、16 進エンコード xxxx の Unicode 文字に置き換えられます。

于 2009-04-23T15:30:51.457 に答える