我在写WAP页的时候,从数据库里提出来的字符,
比如""这样的字符,无法正常显示导致页面出错。
我猜这种字符应该不是UTF-8字符集里的。
请问有什么方法可以判断字符串里有这种字符
并把他替换掉?

解决方案 »

  1.   

    string a,b;b=a.Replace("'","").Replace("*","").Replace("?",""(",""").Replace(","").Replace("<","").Replace(".","");
      

  2.   

    string a,b;b=a.Replace("'","").Replace("*","").Replace("?","").Replace(",""").Replace("<","").Replace(".","");
      

  3.   

    手误string a,b;b=a.Replace("'","").Replace("*","").Replace("?","").Replace(",","").Replace("<","").Replace(".","");
      

  4.   

    Server.HtmlEncode可以,如果是替换,楼上的也行
      

  5.   

    using System.Text.RegularExpressions;string aa = @"a""<b>""c";
    string bb = @"[<"">]";    //需要过滤的字符
    string cc = Regex.Replace(aa,bb,"",RegexOptions.IgnoreCase);    //cc = "abc";
      

  6.   

    replace方法是不可行的,因为我根本不知道有多少种非法字符.
      

  7.   

    不是说replace不行,而是楼上有些朋友的做法是将你字段中的?替换成了空格,这显然是不合理的。难道你不允许页面上显示?不成?
    一般来说,你在将值插入字段时,就要考虑到一些非法字符的问题了。如在<mobile:textbox>中插入'号,(ACCESS)时,程序就会报错了,而你的页面中这些符合又是必须存在的,所以你应该用 vb.net语法字符串.replace("'","''")这样可以正确插入,读时直接读出来就好了
      

  8.   

    首先在aspx页面中加入validateRequest="false"如下:
    <%@ Page language="c#" Codebehind="xxx.aspx.cs" AutoEventWireup="false" validateRequest="false" Inherits="xxx" %>
    另外能导致页面出错的特殊字符就是那几个,只要扑捉到进行replace或者remove就可以,大体思路如下:
    public static bool FormatText(string inputString) 
    {
    bool flag=false;
    string backString=returnVal.ToString();
    //檢測輸入字符串是否含有'<,>,"'等字元
    if (backString.IndexOf("<")!=-1 || backString.IndexOf(">")!=-1||backString.IndexOf("'")!=-1)
    {

    flag =false;
    }
    else
    {
    flag=true;
    }
    // }
    return flag;
    }