检查有日文片假名的新闻

2016-01-29 20:02 14 1 收藏

检查有日文片假名的新闻,检查有日文片假名的新闻

【 tulaoshi.com - ASP 】

==26个日文片假名导致Access搜索(80040e14/内存溢出)的解决办法==

ゴ ガ ギ グ ゲ ザ ジ ズ ヅ デ ド ポ ベ プ ビ パ ヴ ボ ペ ブ ピ バ ヂ ダ ゾ ゼ
当字段内包含了这26个日文字符任意一个多个时,就会导致在执行SQL语句中包含了
[字段] like '%aaaaa%' 或 inStr(1,[字段],'aaaaa',1)0
这样的查询时,毫无道理的出现了
"Microsoft JET Database Engine 错误 '80040e14' 内存溢出"的错误
其他Jet SQL函数命令未作测试,大概与字符搜索定位匹配相关的都可能出错

搜索相关资料得知被微软工程师证实是Access的bug,可能是语法关系都是微软的东东
在vbs中 执行inStr(1,日文平假名变量,"aaaaa",1)依然要出现错误
Microsoft VBScript 运行时错误 错误 '800a0005' 无效的过程调用或参数: 'instr'


没有搜索,因这几个字符出现Access的论坛网站搜索无法进行,何等痛苦
昨天一朋友大叫怪事,他的音乐数据库无法搜索了,只有30000条记录时是好的
毫无疑问,日文片假名是祸根,花几分钟把有包含上面的日文替换成"?"搜索顺利恢复
找来论坛程序用户群最大的动网dvBBS AC版本 7.0SP2 版测试,同样有这个日文发帖后 导致无法搜索并且运行时出错的问题
线上去搜索 '80040e14' 内存溢出" 的错误 多的是!

一简单有效的解决办法:
对这26个字符进行编码和解码,可能效率感觉不理想,测试下来问题不大,速度影响不是太大

编码:

Function Jencode(byVal iStr)
if isnull(iStr) or isEmpty(iStr) then
Jencode=""
Exit function
end if
dim F,i,E
' F=array("ゴ","ガ","ギ","グ","ゲ","ザ","ジ","ズ","ヅ","デ",_
' "ド","ポ","ベ","プ","ビ","パ","ヴ","ボ","ペ","ブ","ピ","バ",_
' "ヂ","ダ","ゾ","ゼ")
E=array("Jn0;","Jn1;","Jn2;","Jn3;","Jn4;","Jn5;","Jn6;","Jn7;","Jn8;","Jn9;","Jn10;","Jn11;","Jn12;","Jn13;","Jn14;","Jn15;","Jn16;","Jn17;","Jn18;","Jn19;","Jn20;","Jn21;","Jn22;","Jn23;","Jn24;","Jn25;")
F=array(chr(-23116),chr(-23124),chr(-23122),chr(-23120),_
chr(-23118),chr(-23114),chr(-23112),chr(-23110),_
chr(-23099),chr(-23097),chr(-23095),chr(-23075),_
chr(-23079),chr(-23081),chr(-23085),chr(-23087),_
chr(-23052),chr(-23076),chr(-23078),chr(-23082),_
chr(-23084),chr(-23088),chr(-23102),chr(-23104),_
chr(-23106),chr(-23108))
Jencode=iStr
for i=0 to 25
Jencode=replace(Jencode,F(i),E(i))
next
End Function

解码:

Function Juncode(byVal iStr)
if isnull(iStr) or isEmpty(iStr) then
Juncode=""
Exit function
end if
dim F,i,E
' F=array("ゴ","ガ","ギ","グ","ゲ","ザ","ジ","ズ","ヅ","デ",_
' "ド","ポ","ベ","プ","ビ","パ","ヴ","ボ","ペ","ブ","ピ","バ",_
' "ヂ","ダ","ゾ","ゼ")
E=array("Jn0;","Jn1;","Jn2;","Jn3;","Jn4;","Jn5;","Jn6;","Jn7;","Jn8;","Jn9;","Jn10;","Jn11;","Jn12;","Jn13;","Jn14;","Jn15;","Jn16;","Jn17;","Jn18;","Jn19;","Jn20;","Jn21;","Jn22;","Jn23;","Jn24;","Jn25;")
F=array(chr(-23116),chr(-23124),chr(-23122),chr(-23120),_
chr(-23118),chr(-23114),chr(-23112),chr(-23110),_
chr(-23099),chr(-23097),chr(-23095),chr(-23075),_
chr(-23079),chr(-23081),chr(-23085),chr(-23087),_
chr(-23052),chr(-23076),chr(-23078),chr(-23082),_
chr(-23084),chr(-23088),chr(-23102),chr(-23104),_
chr(-23106),chr(-23108))
Juncode=iStr
for i=0 to 25
Juncode=replace(Juncode,E(i),F(i))'□
next
End Function

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

注意,如果直接使用字符不方便(windows还没装日文支持),注释掉的部分提供有 chr(-23804) ..这样的定义

本新闻共3页,当前在第1页  1  2  3  

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

来源:https://www.tulaoshi.com/n/20160129/1510592.html

延伸阅读
标签: 血压 备孕 亲子
血压检查有什么用 血压检查的结果无外乎低血压、正常血压和高血压。血压是最基本的生命体征之一,血压检查有什么用呢?一起来看看! 1、鉴别疾病。如注射药物后病人晕倒,测量血压,正常的是晕针患者,低或测量不到就是过敏性休克。 2、诊断疾病。高血压和低血压的患者,通过测量血压就可以诊断。 3、指导用药。如高血压患者出现头晕,...
生完宝宝后,新妈妈沉浸在宝宝带来的幸福中,虽然大多数新妈妈也注意到产后身体的变化,也会很在意产后如何恢复身材之类的话题,一般来说,新妈妈产后42天要去医院做个检查,那么产后42天检查什么?下面就让图老师小编带着大家一起来看看吧! 十月怀胎,终于生下宝宝后,新妈妈小白感觉松了口气。重心开始转移到新出生的宝宝身上,...
痔疮检查 痔疮的检查步骤有哪些 对于现如今痔疮的患者是越来越多了,那么对于痔疮的检查就变的比较重要了,那么大家知道痔疮检查是怎么样的吗,痔疮的症状是什么呢,痔疮是怎么引起的呢,下面就让我们一起来了解一下吧。 痔远端直肠黏膜下静脉丛及肛门扩张及屈曲形态。更常见的是经常站和久坐不动的人。包括痔、痔外痔...
阴囊水囊肿可减少精子量 5.多余的液体——阴囊水囊肿 前因后果:由包在某一个或两个睾丸的薄膜层之间组织水制造过剩引起。有时会发生在一次睾丸受伤或睾丸炎之后,但大多数情况根本找不出任何原因。 你的检查:阴囊出现膨胀隆起,有时囊肿甚至能够达到一个足球那么大,但是感觉并不疼痛。医生治疗:可以通过一次微不足道的麻醉小手术把多...
孕前检查有哪些项目 孕前检查有侧重 Tulaoshi.com 孕前检查有哪些项目 孕前检查有侧重   在早些年,白领听起来似乎还是人人羡慕的行业,而如今,朝九晚五、亚历山大的白领阶层却常常自嘲。COCO和老公都是典型的白领,他们每天花在路上的时间就要2-3个小时,除去吃饭的时间,他们都是呆在办公室里面...

经验教程

135

收藏

18
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部