0

刺し傷に二重引用符を追加したい。/ "を使用することで、二重引用符を追加できることがわかります。私の文字列は

string scrip = "$(function () {$(\"[src='" + names[i, 0] + "']\"" + ").pinit();});";

ブラウザでこれを行うと、「引用符」の代わりに「引用符」が表示されます。この問題をどのように克服できますか?

4

3 に答える 3

1

ブラウザに " 文字ではなく """ が表示された場合、いくつかの原因が考えられます。文字は、それ自体として、または のHTML エンティティとしてブラウザに送信されているはずです"。 end. If the browser see such 'code', it presents a quotes a quote. これは、属性に特殊文字を含める必要がある場合に、HTML を簡単に記述できるようにするためです。

<div attribute="blahblahblah" />

blahs に " を入れたい場合は、属性の表記が終了し、HTML コードが壊れます。したがって、単一の " 文字を追加すると、次のようになります。

<div attribute="blah&quote;blahblah" />

これで、セミコロンを忘れると、ブラウザーは のblah&quotblahblah代わりに表示されますblah"blahblah

あなたのコードが実際に JavaScript コードをくっつけていることに気づきました。JavaScript では、セミコロンは式の区切り文字であるため、実際に&quot;は出力された HTML に a があり、エラー メッセージに不適切に表示されている可能性があります。セミコロンは実際には式ターミネータとして扱われますか?

また、JavaScript コードが html-entity 変換を受ける理由も確認してください。通常、ブロックは再解析されません。その JavaScript コードを HTML 要素の属性として設定していますか? OnClick や OnSend のような?それなら今すぐやめる。このコードで JavaScript 関数を作成し、代わりにクリック/送信からその関数を呼び出します。JS の長い式を属性にエンコードする価値はありません! 時間と神経の無駄です。

他のすべてが失敗し、JavaScript が正しく発行されている場合は、サイトにあるテキスト修正モジュール、テキスト強調表示モジュール、またはテキスト書式設定モジュールを探してください。そのうちの 1 人が html エンティティを読み間違えてセミコロンを削除したか、またはその逆である可能性が非常に高く、不要な場合にそれらを追加した可能性があります。一般に、ASP.Net 自体は適切に機能し、エンティティが必要な場所で正しく変換されるため、最初に他のライブラリを調べます。

于 2012-08-23T10:57:06.257 に答える
0

次のようなものを使用できます。

String str=@"hello,,?!"

これはすべての文字をエスケープする必要がありますまたは

String TestString = "This is a <Test String>.";
String EncodedString = Server.HtmlEncode(TestString);

マニュアルは次のとおりです:http://msdn.microsoft.com/en-us/library/w3te6wfz.aspx

于 2012-08-23T10:49:39.623 に答える
0

文字列で他に何をしていますか?

その後のどこかで文字列がエンコードされるようです。HttpUtility.HtmlDecode(str); を使用できます。ただし、最初に、文字列が最初にエンコードされる場所を把握する必要があります。

<%: %>aspx またはRazor で使用する@yourvarと、自動的にエンコードされることに注意してください。@Html.Raw(yourvar)それを抑制するために使用する必要があります。

于 2012-08-23T11:00:42.363 に答える