2012-01-12 56 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