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
投稿

猜你喜欢

  • MySQL子查询详细教程

    2024-01-22 07:42:04
  • JavaScript中layim之整合右键菜单的示例代码

    2024-04-18 09:42:29
  • 简单瞅瞅Python vars()内置函数的实现

    2021-03-29 20:41:05
  • Python编程中用close()方法关闭文件的教程

    2023-02-10 22:10:06
  • PJBlog3优化——单击自动输入验证码

    2009-05-17 11:03:00
  • python绘制圆柱体的方法

    2022-07-31 02:00:31
  • sqlserver2017共享功能目录路径不可改的解决方法

    2024-01-17 13:58:26
  • 取numpy数组的某几行某几列方法

    2022-03-10 02:04:56
  • Python 3.6 读取并操作文件内容的实例

    2021-11-21 16:52:14
  • 批标准化层 tf.keras.layers.Batchnormalization()解析

    2023-06-18 23:35:17
  • location.href 在IE6中不跳转的解决方法与推荐使用代码

    2024-04-19 10:13:38
  • python爬虫 urllib模块url编码处理详解

    2021-09-13 02:24:37
  • golang 两个go程轮流打印一个切片的实现

    2024-02-12 09:11:29
  • 分享13款非常有用的jQuery插件

    2011-05-16 19:07:00
  • Oracle中PL/SQL复合数据类型

    2024-01-22 07:17:47
  • php中防止SQL注入的最佳解决方法

    2023-08-19 21:52:20
  • MySQL为什么临时表可以重名

    2024-01-15 21:28:27
  • HTTP头信息总结

    2022-10-06 16:09:40
  • Python 函数装饰器应用教程

    2022-08-17 05:53:24
  • MySQL 两种恢复数据的方法

    2024-01-18 03:48:35
  • asp之家 网络编程 m.aspxhome.com