में जीईटी पैरामीटर के यूटीएफ -8 एन्कोडिंग मेरे पास जेएसएफ में एक खोज फ़ॉर्म है जिसे रिचफैस 4 ऑटोकंपलेट घटक और निम्नलिखित जेएसएफ 2 पेज और जावा बीन का उपयोग करके लागू किया गया है। मैं एप्लिकेशन चलाने के लिए टोमकैट 6 & 7 का उपयोग करता हूं।जेएसएफ
...
<h:commandButton value="#{msg.search}" styleClass="search-btn" action="#{autoCompletBean.doSearch}" />
...
AutoCompleteBean
public String doSearch() {
//some logic here
return "/path/to/page/with/multiple_results?query=" + searchQuery + "&faces-redirect=true";
}
में यह सब कुछ "SEARCHQUERY" स्ट्रिंग लैटिन -1 में है के भीतर के रूप में लंबे समय के रूप में अच्छी तरह से काम करता है, यह अगर लैटिन -1 के बाहर है काम नहीं करता।
उदाहरण के लिए "bodø" की खोज स्वचालित रूप से "बोड% F8" के रूप में एन्कोड की जाएगी। हालांकि "क्रा Ðong" की खोज काम नहीं करेगी क्योंकि यह "Ð" एन्कोड करने में असमर्थ है।
मैंने अब इसे हल करने के लिए कई अलग-अलग दृष्टिकोणों की कोशिश की है, लेकिन उनमें से कोई भी काम नहीं करता है।
- मैंने यूआरएलएनकोड का उपयोग करके खोज स्वयं को एन्कोड करने का प्रयास किया है, लेकिन यह केवल डबल एन्कोडिंग की ओर जाता है क्योंकि%% 25 के रूप में एन्कोड किया गया है।
- मैंने एन्कोडिंग प्राप्त करने के लिए java.net.URI का उपयोग करने का प्रयास किया है, लेकिन यूआरएलएनकोड के समान परिणाम देता है।
- मैंने कनेक्टर में URIEncoding = "UTF-8" का उपयोग करके टोमकैट में यूटीएफ -8 को चालू करने का प्रयास किया है, लेकिन यह केवल उस समस्या को खराब करता है जब से गैर-असीसी वर्ण बिल्कुल काम नहीं करते हैं।
तो अपने सवालों के:
- मैं बदल सकते हैं जिस तरह से JSF 2 GET पैरामीटर encodes?
- यदि मैं जेएसएफ 2 जीईटी पैरामीटर को एन्कोड करने का तरीका नहीं बदल सकता, तो क्या मैं एन्कोडिंग चालू कर सकता हूं और इसे मैन्युअल रूप से कर सकता हूं?
- क्या मैं यहाँ कुछ अजीब कर रहा हूं? ऐसा कुछ ऐसा लगता है जिसे बॉक्स के बाहर समर्थित किया जाना चाहिए, लेकिन मुझे एक ही समस्या के साथ कोई अन्य नहीं मिल रहा है।
हां, यह काम करता है। धन्यवाद! – oyse
आपका स्वागत है :) – BalusC