पर उपयोग Unicode = true और characterEncoding = utf8 गुणों को कैसे सेट करें I वर्तमान में एक स्प्रिंग एमवीसी वेबपैप का निर्माण कर रहा हूं और डेटाबेस महत्वपूर्ण बैकएंड हिस्सा है। हालांकि, किसी भी कारण से, वसंत डेटा को यूटीएफ -8 के रूप में संसाधित करने से इनकार कर रहा है। चूंकि विचार, संसाधन और ब्राउज़र यूनिकोड पर सेट हैं, और इसलिए डेटाबेस में सारणीएं हैं (और कुछ समान प्रश्नों को भी पढ़ना), मैंने पाया है कि समस्या डेटाबेस कनेक्शन में निहित है। हाँ को और characterEncoding (सेट UTF8) को useUnicode (सेट ऐसा लगता है, तथापि, यह असंभव हैस्प्रिंग-प्रबंधित MySQL जेडीबीसी कनेक्शन
JDBC एक है:
JDBC ड्राइवर connectionProperties में दो आइटम प्रदान की जानी चाहिए।। सेम, और इस तरह के रूप में एक XML फ़ाइल के माध्यम से कॉन्फ़िगर किया गया है, इसलिए जैसे:
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/<database>" />
<property name="username" value="<not telling>" />
<property name="password" value="<not telling>" />
इस सेटअप धर्मान्तरित सभी गैर अक्षरांकीय अक्षर प्रश्न में (जैसे तीर या ग्रीक अक्षरों के रूप में) डेटाबेस से खींचा निशान। जो जाहिर है, अस्वीकार्य है।
मैं कई समाधान की कोशिश की: jdbc:mysql://localhost:3306/<database>?useUnicode=yes&characterEncoding=utf8
के रूप में JDBC URL निर्दिष्ट, my.ini
फ़ाइल (और MySQL Workbench) के साथ खेला utf8
चारसेट डिफ़ॉल्ट डेटाबेस में सब कुछ के लिए मजबूर करने, और कुछ है कि सबसे बड़ा सिरदर्द का कारण: <property name="connectionProperties" value="useUnicode=yes;characterEncoding=utf8" />
जोड़ने। बाहर निकलता है, यह दो कनेक्शनों को सेट करने के लिए सचमुच असंभव है, क्योंकि एक भी बीन के भीतर प्रजनन नहीं है ... क्योंकि useUnicode
के मान के रूप में yes;characterEncoding=utf8
को सेट करने की कोशिश के रूप में बीन इसे पढ़ने का प्रयास करेगा)। तो मेरा सवाल है: मैं utf8 कैसे करता हूँ?
<property name="connectionProperties">
<props>
<prop key="useUnicode">yes</prop>
<prop key="characterEncoding">utf8</prop>
</props>
</property>
और यह भी: आप एक साधारण जावा ग्राहक (सांत्वना आवेदन) डीबी से कनेक्ट होता है की कोशिश की
शायद आपको यहां वर्णित 'characterEncoding = utf8' के बाद अर्धविराम की आवश्यकता है, जैसा कि यहां बताया गया है: http://stackoverflow.com/questions/13359683/how-to-use-useunicode-yes-characterencoding-utf-8-with- dbcp – GriffeyDog
@GriffeyDog मैं वहां अर्धविराम डालता हूं, मैं इसे कोड से कॉपी नहीं कर रहा था। यह मुझे बिना किसी संकलन की भी अनुमति देगा (ठीक है, यह होगा - लेकिन मुझे जल्द ही अपवाद मिलेगा)। –