私はウェブサイトを持ち、テキストボックスはいくつかあります。ユーザーが文字「E」を含んでいる何かに記入した場合、それは次のようになり:「ë」の文字が表示されます
ë
は、どのように私はそれがデータベースでこれを好きなE保存できますか? 私のウェブサイトはC#言語を使用して.NETとIamで構築されています。
私はウェブサイトを持ち、テキストボックスはいくつかあります。ユーザーが文字「E」を含んでいる何かに記入した場合、それは次のようになり:「ë」の文字が表示されます
ë
は、どのように私はそれがデータベースでこれを好きなE保存できますか? 私のウェブサイトはC#言語を使用して.NETとIamで構築されています。
ASP.Net(サーバー側アプリケーション)とSQL Serverの両方がUnicode対応です。彼らは、異なる言語、異なる文字セットを扱うことができます。
http://msdn.microsoft.com/en-us/library/39d1w2xf.aspx内部的には、ASP.NET Webページの背後にあるコードはUnicodeとして すべての文字列データを処理します。ページが応答をエンコードする方法を設定することができます。これにより、HTTPヘッダーのContent-Type部分のCharSet属性が に設定されます。 これにより、ブラウザはメタタグなしでエンコーディングを判断したり、コンテンツから正しいエンコードを推定するために を抽出する必要がありません。 は、リクエストで送信された情報をページがどのように解釈するかを設定することもできます。
最後に、 自体の内容、つまり ディスク上の物理.aspxファイルのエンコードをASP.NETがどのように解釈するかを設定できます。ファイルのエンコードを設定した場合は、すべてのASPページでその エンコードを使用する必要があります。 Notepad.exeは、現在の システムANSIコードページ、UTF-8、またはUTF-16(Unicodeとも呼ばれます)でエンコードされたファイルを保存できます。 ASP.NETランタイムは、これらの3つのエンコーディングを区別できます。物理ASP.NETファイルの エンコーディングは、@ Pageエンコーディング属性のファイルで指定された のエンコーディングと一致する必要があります。
また、この記事では、便利です。
http://support.microsoft.com/kb/893663
この "ジョエル・オン・ソフトウェア" の記事は絶対必読
でください。 3つの記事すべてを読んで、それが役立つかどうかをお知らせください。
HtmlEncode
およびHtmlDecode
の機能が必要です。
SQL Serverはë
と他のローカルまたは「珍しい」文字で正常ですが、HTMLは正しくありません。これは、一部の文字がHTMLで特別な意味を持つためです。最も良い例は<
または>
であり、HTML構文には必須ですが、さらに多くの例があります。何らかの理由でë
も特別です。そのような文字を表示するには、送信前にHTMLとしてエンコードする必要があります。送信とはブラウザにも送信することを意味します。
ブラウザでë
と表示されていますが、あなたのアプリはë
のエンコードされたバージョンで処理しています。このフォームは常にデータベースを含めてこのフォームにあります。 ë
をë
としてSQL Serverに保存する場合は、最初にデコードする必要があります。ページに表示する前に、ë
にエンコードすることを忘れないでください。
これらの関数を使用して、保存/表示する前にすべてのテキストをデコード/エンコードします。彼らは特殊文字を変換し、他のものだけを残します:
string encoded = HttpUtility.HtmlEncode("Noël")
string decoded = HttpUtility.HtmlDecode("Noël")
エンコードされたテキスト(JavaScriptインジェクション)を操作するもう一つの重要な理由があります。 JavaScriptチャンクを編集/メモボックスに入れて、他の誰かのブラウザ上のある場所で実行されることを期待して、それを混乱させることは、あなたのサイトに対する攻撃です。 UIから取得したすべてのテキストをエンコードすると、実行可能コードではなくテキストとして扱われるため、これらのJavaScriptは実行されません。
あなたの特殊文字はasciiになります。エラーの原因とならない限り、ほとんどの場合大したことではありません。 –