प्राइमफ़ेस 3.0 के बाद से यह ज्ञात समस्या है। वर्तमान HTTP अनुरोध अजाक्स अनुरोध है या नहीं, यह एक बदलाव के कारण होता है। अनुरोध हेडर के बजाय अनुरोध पैरामीटर द्वारा इसकी पहचान की गई है। जब JSF व्यू को पुनर्स्थापित करने से पहले पहली बार अनुरोध पैरामीटर पुनर्प्राप्त किया जाता है, तो सभी अनुरोध पैरामीटर को सर्वर के डिफ़ॉल्ट वर्ण एन्कोडिंग का उपयोग करके पार्स किया जाएगा जो अक्सर जेएसएफ के अपने डिफ़ॉल्ट वर्ण एन्कोडिंग यूटीएफ -8 के बजाय आईएसओ -885 9 -1 होता है। गहराई से स्पष्टीकरण के लिए Unicode input retrieved via PrimeFaces input components become corrupted देखें।
समाधानों में से एक एक फ़िल्टर बनाना है जो request.setCharacterEncoding("UTF-8")
करता है।
@WebFilter("*.xhtml")
public class CharacterEncodingFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
// ...
}
क्या आप सबमिट के दौरान फ़ाइल अपलोड कर रहे हैं? मैं चेक भाषा में ऐप्स विकसित करता हूं और यह मेरे साथ IceFaces फ़ाइल अपलोड घटक के साथ हुआ। लेकिन सामान्य मामलों में सबकुछ ठीक था। आप फ़िनिश वर्णमाला सेट करने के लिए फ़िल्टर का उपयोग कर सकते हैं लेकिन यह अभी भी अजीब त्रुटि है –