程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> ASP自動清除ACCESS數據庫的日文字符

ASP自動清除ACCESS數據庫的日文字符

編輯:關於Access數據庫

我們都知道Access是ASP的親密伙伴。因為兩種最簡單的東西碰在一起總能迸發出火花。
然而,當我們過濾不嚴格的時候經常出現日文字符,這個時候搜索之後就會出現日文溢出。

此時我們通常能想到的想法是找一個exe程序,把這個問題解決掉。我原來用C#寫過這樣一個類似的程序。

Google裡面應該能找到我以前寫的那個。就不說了。後來某一天,我發現ASP就能實現。我當時真的覺得自己太屎了。不過ASP的這種方法很不好。容易造成系統崩潰(如果數據庫大)。
所以只是寫在這裡。算是拋磚引玉。

'下面我解釋一下下:
Function TransferJapanDc9CnInDB()

  On Error Resume Next
  Err.Clear
  Dim objRS,i
  Set objRS=Server.CreateObject("ADODB.Recordset")
  objRS.CursorType = adOpenKeyset
  objRS.LockType = adLockReadOnly
  objRS.ActiveConnection=objConn
  objRS.Source="SELECT * FROM [blog_Comment]"
  objRS.Open()

  If (Not objRS.bof) And (Not objRS.eof) Then

    For i=1 to objRS.RecordCount
'遍歷,看看有沒有日文,如果有,就溢出了,隨便搜索一個東西就行了。搜什麼無所謂。因為是遍歷Access只要指針移動到日文就溢出。
    objConn.Execute("SELECT * FROM [blog_Comment] WHERE comm_ID="&objRS("comm_ID")&" AND [comm_Content] LIKE '%URL%'")
    If Err.Number=-2147217900 Then
'因為是on err繼續 所以這裡找到溢出的錯誤代碼,這個是自己debug出來的,實際上不是從什麼地方找的。
      objConn.Execute("UPDATE [blog_Comment] SET [comm_Content]='"&FilterSQL(Japan2Html(objRS("comm_Content")))&"',[comm_Author]='"&FilterSQL(Japan2Dc9CnHtml(objRS("comm_Author")))&"' WHERE comm_ID="&objRS("comm_ID")&" ")
'這個就是把日文替換一下,思路是不是很巧妙。恩。不過數據庫龐大的化,反復溢出就會很出問題的。內存寶寶會哭的。
      Err.Clear
    End If
    objRS.MoveNext
    Next

  End If

  objRS.Close
  Set objRS=Nothing
End Function
Function Japan2Dc9CnHtml(source)
    source=Replace(source,"ガ","ガ")
    source=Replace(source,"ギ","ギ")
    source=Replace(source,"ア","ア")
    source=Replace(source,"ゲ","ゲ")
    source=Replace(source,"ゴ","ゴ")
    source=Replace(source,"ザ","ザ")
    source=Replace(source,"ジ","ジ")
    source=Replace(source,"ズ","ズ")
    source=Replace(source,"ゼ","ゼ")
    source=Replace(source,"ゾ","ゾ")
    source=Replace(source,"ダ","ダ")
    source=Replace(source,"ヂ","ヂ")
    source=Replace(source,"ヅ","ヅ")
    source=Replace(source,"デ","デ")
    source=Replace(source,"ド","ド")
    source=Replace(source,"バ","バ")
    source=Replace(source,"パ","パ")
    source=Replace(source,"ビ","ビ")
    source=Replace(source,"ピ","ピ")
    source=Replace(source,"ブ","ブ")
    source=Replace(source,"ブ","ブ")
    source=Replace(source,"プ","プ")
    source=Replace(source,"ベ","ベ")
    source=Replace(source,"ペ","ペ")
    source=Replace(source,"ボ","ボ")
    source=Replace(source,"ポ","ポ")
    source=Replace(source,"ヴ","ヴ")
    Japan2Html=source
End Function

順便說一下,最近我的blog反復被hack,搞得我很郁悶,因為是阿拉伯人或者是以色列人干的,所以沒法溝通。我還找不出來他們是怎麼干的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved