Моя внешняя процедура Oracle должна кодировать некоторые зашифрованные значения и передавать их в приложение ASP.NET MVC через URL-адрес. Я уже знаю о utl_i18n.escape_reference
и utl_url.escape
, но они, похоже, не могут кодировать текст так же, как приложение ASP.NET.Как я могу кодировать этот компонент URI в PL/SQL?
Проблема в том, что + не получает кодировку и приходит как пробел при отладке приложения ASP.NET.
Следующие 3 заявления все возвратные «+
», когда я запускаю их в ЖАБА, в то время как я ожидал «%2B
»:
select utl_i18n.escape_reference('+') from dual
select utl_url.escape('+') from dual
select utl_i18n.escape_reference(utl_url.escape('+')) from dual
Возможно, это связано с установить характер? Как проверить набор символов в IIS?
Я ищу что-то подобное, я хочу, чтобы избежать «+» знак, но не другой защищены персонажи. Есть ли способ избежать определенных персонажей? –
Я думаю, вам просто нужно вручную 'REPLACE()' в этой точке @Ash. – Ben
Спасибо за такой быстрый ответ! Думаю, я нашел решение. Оказывается, нет смысла избегать специального символа, поэтому теперь я кодирую все зарезервированные символы. –