网络编程
位置:首页>> 网络编程>> Asp编程>> 由日文出错的Bug,重新认识 Replace 函数

由日文出错的Bug,重新认识 Replace 函数

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

标签:日文,bug,错误,replace,函数

上次我重新修改了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日文出错的问题了

0
投稿

猜你喜欢

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