可以使用实体引用,如在XML规范里,单引号和双引号的实体引用为:&apos=单引号,&quot=双引号,更多的实体引用可以看一下XML的规范。另外,XML在CDATA区内,所有标记和实体引用都初当作字符数据处理。因此直接将XML的CADTA区作为数据分离并存入数据库即可。

解决方案 »

  1.   

    1、保存进去的时候,如果是用的数据绑定的方法,不用任何处理!
       如果使用的写插入的SQL语句,只要单引号替换成两个单引号即可
    2、取出显示
       下面是我以前写的ASP函数,稍作转换,可在VB.NET中使用
    rem 输出前的字符转换(写在输出框内(input)的,回车和空格以及单引号不转换)
    function htmlencode_Input(str)
        dim result
        dim l
        if isNULL(str) then 
           HtmlEncode_Input=""
           exit function
        end if
        l=len(str)
        result=""
    dim i
    for i = 1 to l
        select case mid(str,i,1)
               case "<"
                    result=result+"&lt;"
               case ">"
                    result=result+"&gt;"
               case chr(34)
                    result=result+"&quot;"
               case "&"
                    result=result+"&amp;"
               case else
                    result=result+mid(str,i,1)
             end select
           next 
           HtmlEncode_Input=result
       end function
       rem 输出前的字符转换(仅显示,不写在输出框内的)
    function HtmlEncode_Display(InputString)
    HtmlEncode_Display=InputString
    HtmlEncode_Display=HtmlEncode_Input(HtmlEncode_Display)
    HtmlEncode_Display=replace(HtmlEncode_Display,chr(13),"<br>")
    'HtmlEncode_Display=replace(HtmlEncode_Display," ","&nbsp;")
    end function
      

  2.   

    已解决,多谢!其实我也是这样转换,只是用错了,搞得我莫名其妙了很久,以为这个函数没用.
    我是这样写:
    str.Replace("'","''");
    应该这样写:
    str = str.Replace("'","''");