2012-01-12 60 views
0

我试图确保在提交到我的数据库时,所有不是数字或字母的字符都转换为HTML代码。使用VB.NET将符号字符转换为HTML

带着几分谷歌搜索,我想出了这一点:

Public Shared Function HTMLEncodeSpecialChars(text As String) As String 
    Dim sb As New System.Text.StringBuilder() 

    Dim i As Integer 
    Dim charArray() As Char = text.ToCharArray() 
    ' display contents of charArray 
    For i = 0 To charArray.Length - 1 
     sb.Append((String.Format("&#{0};", Asc(charArray(i)))) & ",") 
    Next 
    Return sb.ToString() 
End Function 

这成功地转换什么HTML,但现在我需要把一些条件有那么它只做它,我需要它至。即;对于任何会使我的数据库条目搞砸的字符,或者当以HTML格式返回到屏幕时(这个数据库内容是针对网站的产品数据的),搞乱格式化。所以为了简单起见,我想我只想转换字母不是A-Z字母或1-0数字的字符。

我可以使用isNumeric,但不知道如何检测字母字符。

我一直在谷歌搜索,发现看起来像它会工作的东西,但逻辑/过滤是错误的。

所以我想我在这里问:d

回答

0

你还没有说为什么现有的工具不适合你,所以你可能不知道这一点:

HtmlEncode的系统方法.Web名称空间:

HTML编码确保文本在 浏览器中正确显示,并且不被浏览器解释为HTML。

+0

谢谢,你是对的我没有意识到这一点。该文件表明,这正是我需要的......麻烦的是,它似乎并没有工作!我试图转换一个由表单提交的HTML字符串,以便它可以插入到我的数据库中。它现在在撇号上造成一个错误,应该HtmlEncode转换撇号?编辑;使用.NET 2.0如果有所作为 – 2012-01-13 09:21:37

+0

其他;我刚刚输出结果作为文本,所以我可以看到到底发生了什么。它似乎工作,但仍然不满意提交到数据库。一段输出是:'< table style = " font-family:\ u0027Times New Roman \ u0027; letter-spacing:正常;孤儿:2; text-indent:0px; text-transform:none; ...'当我尝试使用MySQL UPDATE将其发送到我的数据库时,我得到'您的SQL中有一个错误'\ u0027Times' – 2012-01-13 09:43:12

+0

啊,多一点谷歌搜索,给了我这个http://www.velocityreviews.com /forums/t100026-htmlencode-with-apostrophes.html我从中推断出撇号需要手动转换。因此'notes = HttpContext.Current.Server.HtmlEncode(Replace(notes,“'”,“'”))正在我的函数内工作:-) – 2012-01-13 10:15:56