将包含%3A(冒号)的编码url字符串传递到APEX页面会截断最后一个%3A之后的外翻

时间:2017-08-25 13:48:41

标签: oracle-apex-5

我正在使用ORACLE APEX 5.0.1

我正在将一个url字符串传递给APEX应用程序,其中我编码了所有特殊字符,如果url APEX中有一个或多个%3A(冒号),则截断我传递的值。 这只影响我传递的最后一个变量,只影响最后一个%3A之后的剩余部分,但如果我在网址的最后放置一个%3A,则它在APEX中工作。 我在其他论坛上询问过这个问题,这似乎是APEX中一个相对未知的问题,没有得到解释问题的相关答案。

此示例将值传递给tre字段

"...../apex/f?p=118:32:::::P32_XX,P32_YY,P32_ZZ,:100030,486,VMKF%3AU%202012%3A50"

P32_XXP32_YY获取值正常 P32_ZZ仅获取值"VMKF:U 2012" 但是如果我在这个网址的末尾添加%3A

"...../apex/f?p=118:32:::::P32_XX,P32_YY,P32_ZZ,:100030,486,VMKF%3AU%202012%3A50%3A"

一切正常,P32_ZZ获取值"VMKF:U 2012:50".

我已经在Windows资源管理器11,Google Crom和Mozilla Firefox(最新版本)中测试过这种行为。

如果我使用文字冒号(:

,我会有同样的行为

感谢帮助

1 个答案:

答案 0 :(得分:0)

问题是冒号是APEX URL不同部分的分隔符。我很惊讶使用%3F并没有修复它,但解决办法是按\...\这样包围整个值:

...../apex/f?p=118:32:::::P32_XX,P32_YY,P32_ZZ,:100030,486,\VMKF%3AU%202012%3A50\

请注意,您现在甚至不需要逃离冒号:

...../apex/f?p=118:32:::::P32_XX,P32_YY,P32_ZZ,:100030,486,\VMKF:U%202012:50\