ASP自动清除ACCESS数据库的日文字符
作者:sipo 来源:Sipo Blog 时间:2007-11-28 17:40:00
我们都知道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,搞得我很郁闷,因为是阿拉伯人或者是以色列人干的,所以没法沟通。我还找不出来他们是怎么干的。
标签:日文,access,数据库
0
投稿
猜你喜欢
用ASP实现就MP3曲目信息的操作全攻略
2008-05-28 12:42:00
asp更改Windows2000管理者密码?
2010-06-26 11:03:00
Javascript 动画初探(原理)
2009-02-06 15:53:00
JavaScript 数组的 uniq 方法
2007-12-07 18:28:00
Oracle Portal及其门户网站开发概述
2010-07-20 13:30:00
ASP基础教程之学习ASP中子程序的应用
2008-10-16 10:53:00
在应用环境中如何构造最优的数据库模式
2009-04-01 14:28:00
用户体验的另一种认识
2007-10-25 12:36:00
CSS expression在IE8里正式退出历史舞台
2008-10-26 16:57:00
SQL Server Bulk Insert 只需要部分字段时的方法
2011-10-24 19:44:49
Oracle SQL性能优化系列学习三
2010-07-23 13:08:00
SQL Server 日期相关资料详细介绍
2012-07-11 16:14:07
超半数中文网页一年内将“消失”
2008-03-08 12:49:00
61条面向对象设计的经验原则
2008-05-08 13:05:00
如何获取当前 select 元素的值
2010-03-29 13:07:00
SQL Server中ISNULL函数介绍
2009-09-09 21:23:00
一个用Ajax做的用户名验证程序
2007-10-21 20:40:00
简评:JavaScript将成Silverlight的最大对手?
2008-10-17 10:29:00
服务器XMLHTTP(Server XMLHTTP in ASP)基础
2008-11-11 12:45:00
使用MyISAM表和InnoDB的一些记录
2009-12-20 18:21:00