python
  • django
  • unicode
  • httpresponse
  • 2010-02-05 10 views 6 likes 
    6

    DJANGO में गैर-असीसी वर्ण वाले क्वेरी स्ट्रिंग URL पर रीडायरेक्ट कैसे करें?DJANGO में गैर-असीसी वर्ण वाले क्वेरी स्ट्रिंग URL पर रीडायरेक्ट कैसे करें?

    जब मैं का उपयोग करें "वापसी HttpResponseRedirect (यू '/ पेज /? Title =' + QUERY_STRING)" जहां QUERY_STRING तरह वर्ण हैं "你好", मैं कोई त्रुटि मिलती है " 'ascii' कोडेक में पात्रों सांकेतिक शब्दों में बदलना नहीं कर सकते स्थिति 21-26: सीमा (128), HTTP प्रतिसाद शीर्षलेख US-ASCII प्रारूप में होना चाहिए "में नहीं क्रमसूचक ...

    +0

    हो सकता है कि इस मदद करता है: http://stackoverflow.com/questions/787935/python-interface-to-paypal-urllib-urlencode-non-ascii-characters-failing –

    +0

    यह एक ही समस्या लेकिन उस प्रश्न में कोई समाधान नहीं था:/ – Eric

    उत्तर

    6
    HttpResponseRedirect(((u'/page/?title=' + query_string).encode('utf-8')) 
    

    (कोशिश करने के लिए के बाद से UTF8 केवल लोकप्रिय एन्कोडिंग जो कर सकते हैं है पहली बात यह है सभी यूनिकोड वर्णों को संभाल लें)। यह निश्चित रूप से आपके द्वारा देखे जा रहे अपवाद से छुटकारा पाना चाहिए - यह मुद्दा /page के लिए हैंडलर को सुनिश्चित करने के लिए आगे बढ़ता है, यूटीएफ -8 एन्कोडेड क्वेरी (संभवतः उन्हें वापस यूनिकोड में डीकोड करके) से निपट सकता है। हालांकि, वह हिस्सा कड़ाई से बोल रहा है, इस विशिष्ट प्रश्न के लिए जर्मनी आप पूछ रहे हैं!

    +0

    चीनी वर्ण '\ xe4 \ xbd \ xa0' utf-8 ... '\ xe4' में है, पूर्णांक रूप में "228" है ... जिसे एएससीआई में परिवर्तित नहीं किया जा सकता क्योंकि इसकी सीमा (128) से बाहर है। :/मुझे याद है कि प्रस्तुति का एक रूप है जैसे 由 या ऐसा कुछ, लेकिन मुझे इसके बारे में कोई जानकारी नहीं मिल रही है। वहां कोई पोस्ट है जो इसे पास करने का संदर्भ देता है: http://forums.mysql.com/read.php?103,22136,22199#msg-22199 – Eric

    +0

    @Eric, जब आप 'str' (an एनकोडेड बाइट स्ट्रिंग) को 'यूनिकोड' ऑब्जेक्ट की बजाय 'HttpResponseRedirect'' करने के लिए, पाइथन को एन्कोड करने की कोशिश करने की आवश्यकता नहीं होगी (डिफ़ॉल्ट 'ascii' कोडेक के साथ) और असफल हो। तो '\ xe4' (और ord> = 128 के अन्य वर्ण) कोई समस्या नहीं होगी! –

    +1

    ओएमजी मुझे जवाब मिला है, इतने सारे घंटों के बाद ... HttpResponseRedirect (urllib.quote_plus ((u '/ page /? Title =' + query_string) .encode ('utf-8')) – Eric

    6

    Django रास्ता:

    from django.http import HttpResponseRedirect 
    from django.utils.http import urlquote 
    
    return HttpResponseRedirect(u'/page/?title=%s' % urlquote(query_string)) 
    
    संबंधित मुद्दे