Feed: Document

日文片假名导致 Access 搜索“内存溢出”

这几天转了几个内容包含日语的贴,结果发现搜索数据库时出现“内存溢出”错误。上网搜索寻求答案未果。最后才发现这就是传说中的“日文 26 个片假名(ゴ ガ ギ ア ゲ ザ ジ ズ ヅ デ ド ポ ベ プ ビ パ ヴ ボ ペ ブ ピ バ ヂ ダ ゾ ゼ)导致 Access 搜索出现内存溢出(Microsoft JET Database Engine 错误 '80040e14' 内存溢出)”的 Bug,研究了半天,最后终于还算是解决了。

撇开针对 LBS^2http://www.ronnier.com/article.asp?id=31,再看看归纳出罪魁祸首为 26 个日文片假名 http://www.blueidea.com/bbs/NewsDetail.asp?id=1768538,再借用 Loveyuki 的图:http://www.loveyuki.com/blogview.asp?logID=621&cateID=4

26 个导致 Access 内存溢出的日文片假名

最后,本人决定用最简单的笨方法:

Function EncodeJP(StrHTML)
    If Not StrHTML="" Then
        StrHTML=Replace(StrHTML,"ガ","ガ")
        StrHTML=Replace(StrHTML,"ギ","ギ")
        StrHTML=Replace(StrHTML,"ア","ア")
        StrHTML=Replace(StrHTML,"ゲ","ゲ")
        StrHTML=Replace(StrHTML,"ゴ","ゴ")
        StrHTML=Replace(StrHTML,"ザ","ザ")
        StrHTML=Replace(StrHTML,"ジ","ジ")
        StrHTML=Replace(StrHTML,"ズ","ズ")
        StrHTML=Replace(StrHTML,"ゼ","ゼ")
        StrHTML=Replace(StrHTML,"ゾ","ゾ")
        StrHTML=Replace(StrHTML,"ダ","ダ")
        StrHTML=Replace(StrHTML,"ヂ","ヂ")
        StrHTML=Replace(StrHTML,"ヅ","ヅ")
        StrHTML=Replace(StrHTML,"デ","デ")
        StrHTML=Replace(StrHTML,"ド","ド")
        StrHTML=Replace(StrHTML,"バ","バ")
        StrHTML=Replace(StrHTML,"パ","パ")
        StrHTML=Replace(StrHTML,"ビ","ビ")
        StrHTML=Replace(StrHTML,"ピ","ピ")
        StrHTML=Replace(StrHTML,"ブ","ブ")
        StrHTML=Replace(StrHTML,"ブ","ブ")
        StrHTML=Replace(StrHTML,"プ","プ")
        StrHTML=Replace(StrHTML,"ベ","ベ")
        StrHTML=Replace(StrHTML,"ペ","ペ")
        StrHTML=Replace(StrHTML,"ボ","ボ")
        StrHTML=Replace(StrHTML,"ポ","ポ")
        StrHTML=Replace(StrHTML,"ヴ","ヴ")
    End If
    EncodeJP=StrHTML
End Function

经测试——居然OK了!Search for "Afly": http://www.playes.net/Search.asp?Word=Afly

Permalink | Comments (2) | Hits: 11988 | Time: 15:41:41
Javascript's Event 的一点总结
Windows2003 And Microsoft DirectX And VOS
All Comments
#1 - (Guest) - 2006-3-8 15:52:07
哈哈,谢谢,按你的方法我解决了问题/
#2 - 山寨货网 - 2008-10-7 15:09:14
多谢,终于解决。
[BBS]Post Your Comment
Login ^ ^
Top