बशर्ते कि आप वास्तव में फेसलेट का उपयोग कर रहे हैं (जो डिफ़ॉल्ट रूप से यूटीएफ -8 का उपयोग करता है) और प्राइमफेस एजेक्स का उपयोग नहीं कर रहे हैं (जो गड़बड़ अनुरोध बॉडी एन्कोडिंग के लिए जाना जाता है ), आपकी समस्या के 2 कारण हैं:
-
MySQL JDBC ड्राइवर कैरेक्टर एन्कोडिंग को UTF-8 पर सेट नहीं किया गया है। इससे डीबी में विकृत वर्ण हो गए।
-
एक्लिप्स कंसोल कैरेक्टर एन्कोडिंग को UTF-8 पर सेट नहीं किया गया है। इससे
System.out
. में विकृत वर्ण हो गए ।
समाधान हैं:
-
जोड़ें
useUnicode=yes
का उपयोग करें औरcharacterEncoding=UTF-8
JDBC कनेक्शन के लिए पैरामीटर। आप इसे JDBC URL में क्वेरी स्ट्रिंग के रूप में निर्दिष्ट कर सकते हैंjdbc:mysql://hostname:3306/db_name?useUnicode=yes&characterEncoding=UTF-8
या JDBC डेटा स्रोत में कनेक्शन गुणों के रूप में, ठीक उसी तरह जैसे आपने उपयोगकर्ता नाम, पासवर्ड, आदि निर्दिष्ट किया था।
-
एक्लिप्स को विंडो> प्राथमिकताएं> सामान्य> कार्यक्षेत्र> टेक्स्ट फ़ाइल एन्कोडिंग द्वारा कंसोल एन्कोडिंग के रूप में यूटीएफ -8 का उपयोग करने के लिए कहें :