0

したがって、データベースにアポストロフィを挿入しようとするとアポストロフィが台無しになることは理解していますが、私のアポストロフィはその前でも台無しになります。私のコードは次のようになります。

   String test = null;
   test= Textbox1.Text.ToString();

これを調べてデバッグし、テキストボックス1に「How's it going」と入力すると、その値をテストに渡すと、How'sのアポストロフィが「&#39」に変わることがわかります。

ページのエンコーディングと関係があると思いますか?しかし、私にはよくわかりません。誰か知っている?そして、私が普遍的な修正を行うことができるように、このように台無しになる文字のリストはありますか?

4

3 に答える 3

3

HttpUtility.HtmlDecodeを使用してみてください。エンコードされた文字列を取得しているようです。

StringWriter myWriter = new StringWriter();
HttpUtility.HtmlDecode(Textbox1.Text.ToString(), myWriter);
String test = myWriter;
于 2012-12-18T04:01:23.160 に答える
1

私は同じ問題に直面していました。ページのコンテンツタイプを変更することで解決しました。

<%@ Page Language="C#" ContentType="application/xhtml+xm" %>
于 2015-07-09T08:27:06.057 に答える
-2

あなたには2つの選択肢があると思います

  1. 一重引用符などの特殊文字を Say...Single_Quote に置き換えます。データベースから取得している間、レンダリング中に一重引用符に戻すことができます。

  2. 文字列をそのままデータベースに挿入します。これで、データベースからのフェッチ中に、Literal Control を使用できるようになりました。このコントロールは 3 つのプロパティを提供します

    (a) 変換

    (b) エンコード

    (c) 変形

于 2012-12-18T04:08:56.813 に答える