मैं इसी तरह की समस्या थी। जब मैं एक फॉर्म पोस्ट करता हूं और इसे डीबी में सहेजता हूं, तो इसे ?????? लेकिन अगर मैं मैन्युअल रूप से MySQL वर्कबेंच का उपयोग कर डीबी में डालता हूं तो यह ठीक काम करता है।
मैंने सोचा कि समस्या केवल http अनुरोध एन्कोडिंग में है। इसलिए, मैंने इस मुद्दे के बारे में मुझे मिली सभी सिफारिशें लगभग server.xml पर फ़िल्टर जोड़ने, वेब.xml पर फ़िल्टर जोड़ने और MySQL कॉन्फ़िगरेशन फ़ाइल my.ini में सेटिंग्स बदलना, लेकिन यह मेरी समस्या का समाधान नहीं करता है।
समस्या दो बातें http अनुरोध एन्कोडिंग और JDBC कनेक्शन के कारण था। किसी कारण से MySQL डेटा को आईएसओ -885 9 -1 के रूप में स्वीकार नहीं कर रहा है जो यूटीएफ -8 के रूप में नहीं है।
तो, मैं सभी परिवर्तनों को वापस लाया और मैं दो परिवर्तन नीचे बनाया: के रूप में नीचे बिलाव बदलें server.xml:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
JDBC बदलें कनेक्शन के रूप में नीचे गुण:
jdbc.driver_class=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/dB_Name?useUnicode=yes&characterEncoding=UTF-8
jdbc.username=root
jdbc.password
यहां समाधान कुंजी उपयोग कर रही है Unicode = yes & characterEncoding = UTF-8
** वेब में @jbb जैसे फ़िल्टर जोड़ें।एक्सएमएल: **
<filter>
<filter-name>encoding-filter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding-filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
तो Thymeleaf प्रयोग किया जाता है, नीचे के रूप में viewResolver और TemplateResolver बदलने के लिए:
viewResolver.setCharacterEncoding("UTF-8");
viewResolver.setContentType("text/html; charset=UTF-8");
templateResolver.setCharacterEncoding("UTF-8");
स्रोत
2014-11-08 17:19:53
आपका अपना जवाब सबसे अच्छा है। कृपया इसे स्वीकार करें –
आप दूसरों की मदद करने के लिए अपना उत्तर क्यों स्वीकार नहीं कर रहे हैं? – sns
वह स्वीकार नहीं कर सकता है। चूंकि स्टैक ओवरफ्लो पर यहां उनके आखिरी बार देखा गया है कि 3 मार्च 1111 को 12:46 @NaeemShah –