2013-02-19 60 views
7

का उपयोग करके बदले गए अक्षरों के बजाय प्रश्न चिह्न प्राप्त करना मैंने बहुत सी चीजों की कोशिश की और मुझे समझ में नहीं आया कि मुझे क्यों मिल रहा है? इसके बजाय उच्चारण चरित्र।स्प्रिंग एमवीसी 3

मैं अपने एचटीएमएल पर उपयोग कर रहा हूँ:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

और मेरे नियंत्रक निम्नलिखित कोड

@RequestParam ("name") String name 
name = name.trim(); 
system.out.println(name); 
//response t?ata 
//expected tábata 

मुझे लगता है कि कैसे ठीक करूं है?

धन्यवाद

+0

क्या आप संभवतः सही वर्ण प्राप्त कर सकते हैं, सिवाय इसके कि जब आप इसे कंसोल पर प्रिंट करते हैं, तो आपका कंसोल utf-8 का समर्थन नहीं करता है? इसे आज़माएं: http://stackoverflow.com/questions/2038733/how-do-i-change-a-shell-scripts-character-encoding – gerrytan

+0

यह एक पोस्ट या अनुरोध प्राप्त है? क्या आप वास्तविक एनोटेशन के साथ वास्तविक विधि जोड़ सकते हैं? –

+0

यह पोस्ट अनुरोध है और यह कोड है: RequestMapping (value = "/ userSignup", method = RequestMethod।पोस्ट) \t सार्वजनिक स्ट्रिंग उपयोगकर्ता साइनअप (\t RequestParam ("name") स्ट्रिंग नाम, RequestParam ("ईमेल") स्ट्रिंग ईमेल, RequestParam ("birthdayday") स्ट्रिंग जन्मदिन, अनुरोध पैराम ("जन्मदिन मॉन्थ") जन्मदिन मुहैया कराएं मॉन्थ, RequestParam ("birthdayYear") जन्मदिन का पालन करें प्रिय, RequestParam ("लिंग") स्ट्रिंग सेक्स, RequestParam ("पासवर्ड") स्ट्रिंग पासवर्ड, RequestParam ("पासवर्ड कॉन्फ़िगरेशन") स्ट्रिंग पासवर्ड कॉन्फ़िगरेशन, HttpServletResponse प्रतिक्रिया, ModelMap मॉडल) { –

उत्तर

8

मैं अपने गुरु टेम्पलेट पर निम्न कोड जोड़कर इस समस्या को हल कर सकते हैं: मंदारिन और अरबी की तरह

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> 
0

उच्चारण पत्र और अन्य भाषाओं मुश्किल कर रहे हैं।
मुझे लगता है कि आपने इस मुद्दे का अंतिम भाग नहीं देखा है।
आपको यह सुनिश्चित करना चाहिए कि आप श्रृंखला में किसी भी लिंक में अपना टेक्स्ट सही ढंग से एन्कोड करें।

उदा।

  • डेटाबेस -> जावा -> प्रतिक्रिया> ब्राउज़र
  • गुण फाइल -> jav-> प्रतिक्रिया> ब्राउज़र
  • अनुरोध (परम/फार्म) -> प्रतिक्रिया> ब्राउज़र
  • जावा - > logger-> कंसोल

मैं इस महान जवाब How to get UTF-8 working in Java webapps?

अनुसरण करने का सुझाव SPRI करने के लिए इसे समायोजित करने के लिए एनजी वसंत के कैरेक्टर एन्कोडिंगफिल्टर का उपयोग करें।

<filter> 
    <filter-name>encodingFilter</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> 

आप i18n उपयोग कर रहे हैं जैसे कि आपका ResourceBundleMessageSource के लिए डिफ़ॉल्ट एन्कोडिंग को परिभाषित करने के लिए सुनिश्चित करें

<bean id="messageSource" 
class="org.springframework.context.support.ReloadableResourceBundleMessageSource" 
    > 
     <property name="basename" value="classpath:messages"/> 
     <property name="defaultEncoding" value="UTF-8"/> 
     <property name="useCodeAsDefaultMessage" value="false"/> 
</bean> 

सुनिश्चित करें कि आपकी गुण फ़ाइलों को जावा के मूल 2ascii का उपयोग करके सही ढंग से एन्कोड किया गया है।
या बेहतर अगर आप ग्रहण का उपयोग मेरा सुझाव है Property Editor plugin.
कुछ समय तीसरे पक्ष के ढांचे को तोड़ने कुछ और जैसा कि आप देख here

नोट अधिक जानकारी के लिए "जादुई"

new String(yourstring, "UTF8") 

क्या करने की जरूरत है कि कुछ दृश्य रिसोल्वर परिभाषित एन्कोडिंग की भी आवश्यकता है।

+0

मैं इसे देख लूंगा। धन्यवाद हैम! –

+0

एक और संभावित मुद्दा log4j एपेंडर का एन्कोडिंग है। आप को निम्नलिखित में जोड़ें log4j.properties फ़ाइल log4j.appender.emsSpringLogFile.encoding = UTF-8 –