网络编程
位置:首页>> 网络编程>> Asp编程>> 日文片假名导致 Access 搜索“内存溢出”

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

作者:Afly 来源:Afly博客 发布时间:2009-07-07 22:23:00 

标签:日文,搜索,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 的图:

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

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了!

asp之家注:在含有上门日文的字符串时,使用replace函数也可能会报错

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com