2010-03-16 20 views
7

के साथ वर्ण मैं शहरों की सूची पुनर्प्राप्त करने के लिए jquery $ .getJSON का उपयोग कर रहा हूं।jquery json

सबकुछ ठीक काम करता है, लेकिन मैं एस्टोनिया से हूं और हम कुछ पात्रों जैसे õ, ü का उपयोग कर रहे हैं। ä, ö।

जब मैं कॉलबैक फ़ंक्शन के लिए इस तरह के पत्र पास करता हूं, तो मुझे खाली तार मिलते रहते हैं। मैंने बेस 64 एन्कोड (सर्वर-साइड) -डेकोड (jquery base64 प्लगइन) स्ट्रिंग्स (मैंने सोचा था कि यह एक अच्छा विचार था जब तक मैं php के साथ पृष्ठों को संपीड़ित कर सकता हूं, इसलिए मुझे बैंडविड्थ के बारे में चिंता करने की ज़रूरत नहीं है) लेकिन इस तरह से मैं कुछ यादृच्छिक चीनी प्रतीकों के साथ समाप्त होता है।

इस समस्या के लिए सबसे अच्छा कामकाज क्या होगा।

धन्यवाद। UTF-8

उत्तर

4

आप अपने आउटपुट डेटा utf8_encode() की जरूरत है। क्लाइंट साइड पर यूटीएफ -8 में अपना एन्कोडिंग सेट करने की कोई ज़रूरत नहीं है क्योंकि यह पहले से ही डिफ़ॉल्ट है।

<?php 
    if(isset($_GET['json'])) { 

     die(json_encode(array('text' => utf8_encode('õ, ü. ä, ö')))); 
    } 

    include_jquery(); # this outputs jquery include 
>? 

<script> 

    $.getJSON('this_file.php', { 'json': 1 }, function(data) { 
     console.log('data', data); 
    }); 

</script> 
+0

json_encode गूंजने से पहले लूपिंग सरणी utf8_encode() के साथ लूपिंग सरणी समस्या हल हो गई। आपके संकेतों के लिए धन्यवाद। – Mikk

0

उपयोग आप php पृष्ठों में और आउटपुट एन्कोडिंग

0

यह कुछ एन्कोडिंग/चारसेट समस्या की तरह लग रहा है:

  • ही चारसेट हर जगह अपने आवेदन में: यदि आप उपयोग कर रहे हैं सुनिश्चित हैं?
    • डेटाबेस
    • स्रोत फ़ाइलों
    • HTTP हेडर ब्राउज़र
  • एक चारसेट जो उन वर्णों का समर्थन करता है के लिए भेजा?
    • यानी: क्या आप यूटीएफ -8 का उपयोग कर रहे हैं?
    • कौन सा यूनिकोड चारसेट कि आम तौर पर वेब आवेदन के लिए प्रयोग किया जाता है है, और समर्थन करता है, वास्तव में किसी भी चरित्र के बारे में एक
2

आप सुनिश्चित करें कि आप एक सुसंगत वर्ण एन्कोडिंग रखने करना है सोच सकते हैं। आपके द्वारा इच्छित एस्टोनियाई वर्ण utf-8 में हैं, इसलिए आपको $.ajax का उपयोग करना होगा और चार एन्कोडिंग को स्पष्ट रूप से सेट करना होगा (सामग्री प्रकार के माध्यम से)।

आप परिणामी AJAX ले सकते हैं और इसे संसाधित कर सकते हैं।

आप सामग्री प्रकार सेट करने के लिए getJSON को कॉल करने से पहले AJAXSetup का भी उपयोग कर सकते हैं।

http://api.jquery.com/jQuery.ajaxSetup/

यह आपको getJSON

का उपयोग करने की अनुमति होगी इसके अलावा, यहाँ एक प्रासंगिक अतः एक ही विषय के बारे में पोस्ट है: How to set encoding in .getJSON JQuery

संबंधित मुद्दे