撇号变成'当我从文本框中获取文本时

时间:2012-12-18 03:47:15

标签: c# asp.net textbox apostrophe

所以我理解当你试图将它们插入数据库时​​,撇号会搞砸,但是在我之前我的撇号就搞砸了!这是我的代码:

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

当我经历并调试这个,并说我在文本框1中输入“它是怎么回事”时,我看到当我将该值传递给测试时,How中的撇号变为“&#39”。 / p>

我猜它与页面的编码有关?但我不太确定。有人知道吗?是否有一个字符列表会像这样搞砸,所以我可以进行普遍修复?

3 个答案:

答案 0 :(得分:3)

尝试使用HttpUtility.HtmlDecode。看起来你正在获得一个编码的字符串。

StringWriter myWriter = new StringWriter();
HttpUtility.HtmlDecode(Textbox1.Text.ToString(), myWriter);
String test = myWriter;

答案 1 :(得分:1)

我遇到了同样的问题。我通过更改页面的内容类型解决了这个问题。

<%@ Page Language="C#" ContentType="application/xhtml+xm" %>

答案 2 :(得分:-2)

我认为你有两个选择

  1. 使用Say ... Single_Quote替换您的特殊字符,例如单引号,在从数据库中检索时,您可以在渲染时转换回单引号

  2. 将字符串原样插入数据库中。现在,在从数据库中获取时,您可以使用Literal Control。此控件提供三个属性

    (a)转换

    (b)编码

    (c)转换