由日文出错的Bug,重新认识 Replace 函数
作者:puterjam 来源:puterjam博客 时间:2009-07-07 22:28:00
上次我重新修改了UBB的转换后,又很多朋友反映日文显示的时候出错了。我在本地测试了一下,结果出现了 Invalid procedure call or argument 的错误。原来是replace的时候出错了。我到MSDN上查了相关资料,微软的说法是:
When you call the Replace function that contains the vbTextCompare enumerated constant as the last parameter, and the first or second parameters contain a special character such as "ビ", you may receive the following error message:
Invalid procedure call or argument
VB的replace 函数的参数是这样的
Replace(e­xpression, find, replacewith[, compare[, count[, start]]])
参数
e­xpression
必选项。字符串表达式包含要替代的子字符串。
Find
必选项。被搜索的子字符串。
Replacewith
必选项。用于替换的子字符串。
Start
可选项。e­xpression 中开始搜索子字符串的位置。如果省略,默认值为 1。在和count 关联时必须用
count
可选项。执行子字符串替换的数目。如果省略,默认值为 -1,表示进行所有可能的替换。在和 start 关联时必须用。
Compare
可选项。指示在计算子字符串时使用的比较类型的数值。如果省略,缺省值为 0 ,这意味着必须进行二进制比较。
问题就在最后一个参数Compare上面。默认是0
0 = vbBinaryCompare 执行二进制比较。
1 = vbTextCompare 执行文本比较。
结论:我们在replace韩文和日文的时候不能用vbTextCompare文本比较。
重新给出修正好的ubbcode.asp覆盖文件,就可以修正Blog日文出错的问题了


猜你喜欢
分享10个有趣的Python程序

PHP实现将科学计数法转换为原始数字字符串的方法
Oracle时间日期操作方法小结第1/2页
python删除指定类型(或非指定)的文件实例详解
Go语言入门教程之Arrays、Slices、Maps、Range操作简明总结
Python伪随机数模块random详解
Oracle数据泵的导入与导出实例详解
为什么MySQL选择Repeatable Read作为默认隔离级别

python 实现端口扫描工具
Node+OCR实现图像文字识别功能

python使用Word2Vec进行情感分析解析

SQLServer 跨库查询实现方法
vue动态添加表单validateField验证功能实现
关于CSS学习——写给初学者
SQLServer中数据库文件的存放方式,文件和文件组
ORM框架之Dapper简介和性能测试
Vue3中关于setup与自定义指令详解

Python实现类似比特币的加密货币区块链的创建与交易实例

Go语言中TCP/IP网络编程的深入讲解
Bootstrap导航条学习使用(二)
