2011-03-26 16 views
9

हैलो मैं एक प्रोजेक्ट के लिए Google App Engine का उपयोग कर रहा हूं और मुझे कुछ स्ट्रिंग्स स्टोर करने की आवश्यकता है। मैं जावा और JDOHelper.getPersistenceManagerFactory("transactions-optional")Google ऐप इंजन डेटास्टोर स्ट्रिंग एन्कोडिंग समस्या

अपने कंप्यूटर पर इसे डिबग करने के दौरान सब कुछ ठीक काम करता है और स्ट्रिंग्स सही ढंग से सहेजे जाते हैं। लेकिन जब मैं इसे Google ऐप इंजन पर अपलोड करता हूं, तो मेरे द्वारा सहेजे गए सभी स्ट्रिंग्स में उनके यूनिकोड वर्णों को प्रश्न चिह्न (?) द्वारा प्रतिस्थापित किया जाएगा। यदि मैं प्रोजेक्ट पेज पर DataViewer पर जाता हूं, तो मैं देख सकता हूं कि स्ट्रिंग्स वास्तव में प्रश्न चिह्नों से सहेजी जाती हैं।

जैसा कि मैंने कहा, जब यह मेरे कंप्यूटर पर चल रहा है तो यह ठीक काम करता है। क्या कोई है जो जानता है कि मुझे क्या करना चाहिए?

+0

आप उपयोग के बारे में बात कर रहे हैं "इनकोडिंग" स्ट्रिंग्स या "unencoded" स्ट्रिंग्स –

+0

क्या वर्ण एन्कोडिंग क्या आपने अपने पृष्ठों में निर्दिष्ट किया है? यूटीएफ -8 मेरे लिए ठीक काम कर रहा है। – Eelke

+0

मुझे वास्तव में पता नहीं है। मैं जीएई और एन्कोडिंग-सामान के लिए काफी नया हूं। लेकिन मैंने एक परीक्षण किया, चार "å" के साथ स्ट्रिंग लिखने की कोशिश की, सीधे मेरे सर्वलेट से persistancemanager पर, और यह ठीक काम किया। तो मुझे लगता है कि पोस्ट के माध्यम से आने वाली स्ट्रिंग के डीकोडिंग के साथ इसका कुछ संबंध है। लेकिन जैसा कि मैंने कहा, स्थानीय रूप से – Joel

उत्तर

3

ऐसा लगता है कि आप अपनी HTTP पोस्ट सामग्री के लिए एन्कोडिंग निर्दिष्ट नहीं कर रहे थे। विवरण के लिए this question पर एक नज़र डालें।

1

जैकब्रिबिट की तरह, आपको वर्णसेट निर्दिष्ट करना चाहिए। मुझे अभी भी Google App Engine पर कुछ परेशानी थीं। यूआरएफ -8 में वर्णसेट सेट करने और वसंत के CharacterEncodingFilter का उपयोग करने के बाद मुझे कुछ भी एन्कोडिंग के साथ परेशान नहीं किया गया है।

अपने web.xml फ़ाइल में जोड़ने के लिए How To Get Character Encoding Correct देखें इस कोड पर जो जानकारी शामिल है,:

<filter> 
    <filter-name>SetCharacterEncoding</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>SetCharacterEncoding</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

अपने फिल्टर श्रृंखला में पहला कदम के रूप में जोड़ना न भूलें!

इसके अलावा, ब्लॉग के लेखक के रूप में अच्छी तरह से UTF-8 के लिए अपने JSP पृष्ठों में किए गए वर्णसेट स्थापित करने का सुझाव देते हैं:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
संबंधित मुद्दे