ASP代碼實現(xiàn)自動清除替換ACCESS(MDB)數(shù)據(jù)庫的日文字符的
更新時間:2008年06月12日 23:48:53 作者:
我們都知道ACCESS是ASP的親密伙伴。因為兩種最簡單的東西碰在一起總能迸發(fā)出火花。
然而,當我們過濾不嚴格的時候經(jīng)常出現(xiàn)日文字符,這個時候搜索之后就會出現(xiàn)日文溢出。
此時我們通常能想到的想法是找一個exe程序,把這個問題解決掉。我原來用C#寫過這樣一個類似的程序。
Google里面應(yīng)該能找到我以前寫的那個。就不說了。
后來某一天,我發(fā)現(xiàn)ASP就能實現(xiàn)。我當時真的覺得自己太屎了。
不過ASP的這種方法很不好。容易造成系統(tǒng)崩潰(如果數(shù)據(jù)庫大)。
所以只是寫在這里。算是拋磚引玉。
'下面我解釋一下下:
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繼續(xù) 所以這里找到溢出的錯誤代碼,這個是自己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")&" ")
'這個就是把日文替換一下,思路是不是很巧妙。恩。不過數(shù)據(jù)庫龐大的化,反復(fù)溢出就會很出問題的。內(nèi)存寶寶會哭的。
Err.Clear
End If
objRS.MoveNext
Next
End If
objRS.Close
Set objRS=Nothing
'www.dc9.cn 07/11/28
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反復(fù)被hack,搞得我很郁悶,因為是阿拉伯人或者是以色列人干的,所以沒法溝通。
我還找不出來他們是怎么干的。
真的很郁悶。
好了。
接下來的日子里。我將再發(fā)布一些技術(shù)性的文章。突然感到這個位子很寶貴的說。
Google里面應(yīng)該能找到我以前寫的那個。就不說了。
后來某一天,我發(fā)現(xiàn)ASP就能實現(xiàn)。我當時真的覺得自己太屎了。
不過ASP的這種方法很不好。容易造成系統(tǒng)崩潰(如果數(shù)據(jù)庫大)。
所以只是寫在這里。算是拋磚引玉。
'下面我解釋一下下:
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繼續(xù) 所以這里找到溢出的錯誤代碼,這個是自己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")&" ")
'這個就是把日文替換一下,思路是不是很巧妙。恩。不過數(shù)據(jù)庫龐大的化,反復(fù)溢出就會很出問題的。內(nèi)存寶寶會哭的。
Err.Clear
End If
objRS.MoveNext
Next
End If
objRS.Close
Set objRS=Nothing
'www.dc9.cn 07/11/28
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反復(fù)被hack,搞得我很郁悶,因為是阿拉伯人或者是以色列人干的,所以沒法溝通。
我還找不出來他們是怎么干的。
真的很郁悶。
好了。
接下來的日子里。我將再發(fā)布一些技術(shù)性的文章。突然感到這個位子很寶貴的說。
相關(guān)文章
asp javascript picasa相冊外鏈批量導(dǎo)出
自己的空間想做一個相冊,找來找去用了picasa,功能很方便,唯一不足之處是獲取外鏈太麻煩,一個一個的復(fù)制粘貼太辛苦,于是用asp+javascript的方法寫了個簡單的程序2009-05-05
ASP 遞歸調(diào)用 已知節(jié)點查找根節(jié)點的函數(shù)
已知節(jié)點查找根節(jié)點的asp函數(shù)2009-12-12
ASP FSO顯示特殊文件夾的實現(xiàn)代碼(畸形目錄名、UNC路徑)
一些特殊的文件夾asp是沒法完全顯示出來的,但是可以通過unc路徑去刪除,但前提是得知道準確路徑2012-03-03
十萬條Access數(shù)據(jù)表分頁的兩個解決方法
后臺數(shù)據(jù)庫用是Access,客戶用了一年后說打開界面非常慢,查看了數(shù)據(jù)庫后發(fā)現(xiàn)數(shù)據(jù)表中的記錄已有五萬多條,自己試過將記錄復(fù)制到10 萬條,打開界面非常慢,翻頁也是同樣的問題2008-06-06
在ASP中不用模板生成HTML靜態(tài)頁直接生成.html頁面
有沒有辦法不用模板,如一個正常的htmer.asp頁面,直接生成為htmer.html頁面呢?當然是可以的,而且非常簡單,今天就教大家在ASP中不用模板生成HTML靜態(tài)頁的方法2014-09-09

