2012-05-04 15 views
0

画像のURLを出力するモスサービスがあります。モスサービス出力に奇妙な文字(amp;)が追加されました

出力URLに「&」文字が付いているとします。 &の横

(例:Directory.aspx? &z = BWxNK

ここでamp;追加する。それは苔のサービスです。だから私はサービスをコントロールしていない。

私ができることは、出力をデコードすることです。私はAjaxを呼び出すためにコールを使用しているので、私はJavascriptからputをデコードすることを余儀なくされています。私はdecodeURIComponent、decodeURI、エスケープしようとしました。何も問題を解決しませんでした。

大変助かりました。サーバー側の機能も役立ちます。私はAspl.net MVC3を使用しています

よろしく、 クマール。

+2

「&」は、「&」のURL置換エンコードです。それについて奇妙なことはありません。あなたはURLデコードする必要があります –

+2

@Topener - そうではありません。 '%26'は'& 'の代わりにURLエンコードされたものです! '&'はSGMLエンコードされています(HTMLやXMLなどの派生物)。 – Quentin

+0

@Quentinああ。私の悪い。私はこれらのことを混同する傾向があります;) –

答えて

0

&はエンコードされていないため、HTMLでエンコードされています。サーバ側ソリューションの

あなたがこれを行うことができ、:JavaScriptのソリューションについて

Server.HtmlDecode("&") // yields "&" 

を、あなたは"&"HTMLを設定し、テキストを読み出し、HTMLデコードをシミュレートすることができます。 jQueryのでは、それは次のようになります。

$("<span/>").html("&amp;").text(); // yields "&" 
+0

Tahnks David、それは魅力のように働いた。一時的なスパン要素を持たないhtml関数を正しく呼び出すことはできますか? – Brainchild

+0

いいえ、あなたが作成している一時的なスパンのHTMLコンテンツを設定することですが(文書に追加することはありません)、実際にHTMLを追加するためのプレースホルダー変数が必要ですそこからテキストを読むことができます。 –

0

&amp;&のためのSGML/XML/HTMLです。

サービスがXMLドキュメントを出力している場合は、XMLパーサーを使用して正規表現ではなく、まったく奇妙でないことを確認してください。

それ以外の場合は、(おそらく)HTMLをデコードする必要があります。 JavaScriptでは、これを行う最も簡単な方法は次のとおりです。

var foo = document.createElement('div'); 
foo.innerHTML = myString; 
var url = foo.firstChild.data; 
+0

私のサービスは文字列を返します。すでにエンコードされています。 – Brainchild

関連する問題