2011-07-29 8 views
1

、私は引用符を持っている以下の文字列にHTMLエンコードを行うにしようとしています、それは文字列を引用符でのHTMLエンコード問題

サーバーが返す動作しない言い訳

string serverString= **“Test hello,”** //これはありますデータベースから返さ

serverString =HttpUtility.HtmlEncode(serverString); 

は、私はこの結果

�Test helloI,� 
を取得しています

でも、まだ置き換えられておらず、asp.netページにダイヤモンドシンボルが表示されています

誰かが私に間違っていることを教えてもらえますか?

+0

私は何が起こっているのか分かりません。データベースから返されるものは何ですか? '**" Hello hello "、**? – Darcy

+1

エンコードが間違っています。その結果はどこにありますか? – SLaks

+0

@slaks、私はデータベースから値を取得します。 – kobe

答えて

1

レンダリングの問題ではないですか?ブラウザが文字を適切にレンダリングしていることを確認するために、「Arial Unicode MS」のようなフォントを試してみてください。

また、データベースから返された文字列が正しいことを確認する必要があります。

最後に、serverStringをレスポンスストリームに書き込む方法を共有することができます。一部のASP.NETコントロールではテキストとHTMLエンコードが必要ですが、他のユーザーはHTMLを期待しています。

+0

@ dragon、basicallはサーバーからサーバーへの呼び出しであり、呼び出すページにはUTFが設定されています。 – kobe

3

表示されている引用符は、HTMLの観点からは完全に正当な文字なので、HtmlEncodeでエンコードする必要はありません。あなたが見ている可能性が最も高いのは、ブラウザのエンコーディングがこれらの文字をサポートしていないという問題です。詳細については、http://www.htmlbasictutor.ca/character-encoding.htmを参照してください。

+0

ありがとう、私はそれを準備しましょう。 – kobe

1

これは、サーバーが通常の二重引用符ではなく、わかりやすい二重引用符(技術的な名前ではない)を返すためです。

string serverString= "“Test hello,”"; 
serverString = HttpUtility.HtmlEncode(serverString) 
          // Replaces fancy left double quote with regular one 
          .Replace("\u2018", "'") 
          // Replaces fancy right double quote with regular one 
          .Replace("\u2019", "'"); 
+1

いいえ。これらの引用文字に間違いはありません。 – SLaks

関連する問題