刺し傷に二重引用符を追加したい。/ "を使用することで、二重引用符を追加できることがわかります。私の文字列は
string scrip = "$(function () {$(\"[src='" + names[i, 0] + "']\"" + ").pinit();});";
ブラウザでこれを行うと、「引用符」の代わりに「引用符」が表示されます。この問題をどのように克服できますか?
ブラウザに " 文字ではなく """ が表示された場合、いくつかの原因が考えられます。文字は、それ自体として、または のHTML エンティティとしてブラウザに送信されているはずです"
。 end. If the browser see such 'code', it presents a quotes a quote. これは、属性に特殊文字を含める必要がある場合に、HTML を簡単に記述できるようにするためです。
<div attribute="blahblahblah" />
blahs に " を入れたい場合は、属性の表記が終了し、HTML コードが壊れます。したがって、単一の " 文字を追加すると、次のようになります。
<div attribute="blah"e;blahblah" />
これで、セミコロンを忘れると、ブラウザーは のblah"blahblah
代わりに表示されますblah"blahblah
。
あなたのコードが実際に JavaScript コードをくっつけていることに気づきました。JavaScript では、セミコロンは式の区切り文字であるため、実際に"
は出力された HTML に a があり、エラー メッセージに不適切に表示されている可能性があります。セミコロンは実際には式ターミネータとして扱われますか?
また、JavaScript コードが html-entity 変換を受ける理由も確認してください。通常、ブロックは再解析されません。その JavaScript コードを HTML 要素の属性として設定していますか? OnClick や OnSend のような?それなら今すぐやめる。このコードで JavaScript 関数を作成し、代わりにクリック/送信からその関数を呼び出します。JS の長い式を属性にエンコードする価値はありません! 時間と神経の無駄です。
他のすべてが失敗し、JavaScript が正しく発行されている場合は、サイトにあるテキスト修正モジュール、テキスト強調表示モジュール、またはテキスト書式設定モジュールを探してください。そのうちの 1 人が html エンティティを読み間違えてセミコロンを削除したか、またはその逆である可能性が非常に高く、不要な場合にそれらを追加した可能性があります。一般に、ASP.Net 自体は適切に機能し、エンティティが必要な場所で正しく変換されるため、最初に他のライブラリを調べます。
次のようなものを使用できます。
String str=@"hello,,?!"
これはすべての文字をエスケープする必要がありますまたは
String TestString = "This is a <Test String>.";
String EncodedString = Server.HtmlEncode(TestString);
マニュアルは次のとおりです:http://msdn.microsoft.com/en-us/library/w3te6wfz.aspx
文字列で他に何をしていますか?
その後のどこかで文字列がエンコードされるようです。HttpUtility.HtmlDecode(str); を使用できます。ただし、最初に、文字列が最初にエンコードされる場所を把握する必要があります。
<%: %>
aspx またはRazor で使用する@yourvar
と、自動的にエンコードされることに注意してください。@Html.Raw(yourvar)
それを抑制するために使用する必要があります。