2017-08-28 13 views
0

Oracle APEXページの「ページ・ロード時に実行」セクションにjQueryコードがあります。私のページは、PL/SQLの動的コンテンツ、より具体的にはフィルタのように動作する2つの選択リストで構成されています。したがって、これらの選択リストの1つの値を選択すると、適切なページ項目値でリダイレクトが呼び出されます。 JQueryコードのベローは、ページリダイレクトを呼び出すセカンドセレクトリストのみを処理します。URLはOracle APEX jsリダイレクトで%にutf8文字をエンコードしています

var appId = $v('pFlowId'); 
var pageId = $v('pFlowStepId'); 

var this_page_link_prefix = 'f?p='+appId+':'+pageId+':::NO:RP:'; 

$(document).on('change', '#category_select', function() { 
    if ($(this).val() != '') { 
     var href = this_page_link_prefix+'P'+pageId+'_FILTER_CATEGORY,P'+pageId+'_FILTER_RACE_TYPE:' 
     +$(this).val()+','+$('#race_type_select').val()+':'; 
     console.log(href); 
     $(location).attr('href', href); 
    } 
}); 

ここで私は自分で解決できない問題に遭遇しました。私のフィルタに "Ž"のようなUTF-8文字が含まれていると、URLは%エンコードでエンコードされます。選択リストは、 "Ženyを" 含まれている場合たとえば、私のリダイレクトURLは次のようになります?

F P = 123:5:9348018667019 :: NO:RP:P5_FILTER_CATEGORY、P5_FILTER_RACE_TYPE:%25C5%25BDeny、1

私はhrefの変数をログコンソールしようとすると、それは適切なURLが含まれています?

F P = 123:5:9348018667019 :: NO:RP:P5_FILTER_CATEGORY、P5_FILTER_RACE_TYPE:Ženy、1

私は思います私はすべてのアプリケーションの設定を閲覧しても解決策を見つけることができませんrこれ。私はどんな助けにも感謝します。

答えて

0

UTF-8文字がブラウザのURLバーに表示されるかどうかを制御する方法はわかりません。例えば、Chromeは私にそれらを入力させ、それらを正しく表示しますが、要求をサーバに送信するときにパーセントでエンコードします。 F12デベロッパーツールを使用して、簡単なリクエスト(例: https://www.google.com/search?q=Ženy

だから、あなたのブラウザで行うことができます。しかし、あなたが絶対に修正できるのは、P5_FILTER_CATEGORYページ項目がパーセントエンコーディングではなく正しいUTF-8値で終わることを確認することです。ただ、やって「前にヘッダー」プロセスまたは何かを追加:

:P5_FILTER_CATEGORY := UTL_URL.UNESCAPE (:P5_FILTER_CATEGORY, 'UTF8'); 

行うことは非常に簡単である、役立つかもしれないもう一つの事を、あなたのページのテンプレートを編集して、彼らは文字セットを設定していることを確認することですものあなたはページヘッダーにしたい、例えば

<html><head> 
<meta charset="utf-8"/> 
.... 

最後に、あなたは、ブラウザの開発ツールを使用してContent-Type charset APEXは、HTTPヘッダーで送信されているか確認する必要があります。私はこれをどう変えるかを覚えていませんが、utf-8でなければそれを見直したいかもしれません。

+0

ブラウザが実行していませんでした。 URLバーに入力した後、UTF-8の文字が正しく表示されました。同じアプリケーションが2台のサーバーで異なる動作をしたため、本当に奇妙でした。実動サーバーでは、この%エンコードは起こっていませんでした。 2番目の段落で述べたように、ページ・アイテムのコンテンツがエンコードされている場合、PL/SQLパッケージをチェックインしました。それから、UTL_URL.UNESCAPE関数を使用しました。 –

関連する問題