搜索我的应用程序的未捕获异常日志( js -> php -> vb6 dll )我注意到一个奇怪的错误:
file: /displaywords_GET.php?GreekWord=%E1%ED%E8%F1%F9%F0%EF%EC%DE%ED%E1%F2&selectedRes=1 # <b>Source:</b> mydll<br/><b>Description:</b> Invalid procedure call or argument # Variables:
# Array
(
[GreekWord] => ανθρωπομήνας
[selectedRes] => 1
)
因此 .dll 中的异常发生在给定参数上。我在应用程序中通过输入特定单词自己测试了它,并且没有出现错误。然后我在地址栏直接输入编码后的URL进行测试查看,错误重现。所以为了看看编码是否有问题,我在javascript中做了
encodeURIcomponent("ανθρωπομήνας")
结果是:
%CE%B1%CE%BD%CE%B8%CF%81%CF%89%CF%80%CE%BF%CE%BC%CE%AE%CE%BD%CE%B1%CF%82
这与上面 php 日志中的 GET 参数有很大不同。然后我尝试解码 url get 参数,如 php 文件中所示:
decodeURIcomponent("%E1%ED%E8%F1%F9%F0%EF%EC%DE%ED%E1%F2")
和 javascript 说:格式错误的 URI 序列。为什么会这样?显然,应用程序崩溃是因为特定的 URL 参数格式不正确,而不是正确的。
现在,我的问题是,如何查看编码的字符串是正确的字符串还是损坏的字符串?(虽然我不确定为什么 php 似乎在日志中正确解码它,但当 javascript 说它格式错误时)。
提前致谢!