2010-01-06 10 views
6

आज, मैं facebook.com के एचटीएमएल कोड में देखा, और कुछ इस तरह मिल गया है:फेसबुक वर्णमाला पहचान तंत्र?

<input type="hidden" value="€,´,€,´,水,Д,Є" name="charset_test"/> 

यह <form>...</form> के अंदर दो बार दोहराया है।

कोई भी विचार यह कोड उपयोगी हो सकता है - किसी प्रकार का सर्वर-साइड क्लाइंट वर्णमाला पहचान? जहां तक ​​मुझे पता है, ब्राउजर वर्णसेट HTTP अनुरोध में किसी भी तरह से प्रसारित किया जा रहा है (एक "स्वीकार्य-वर्णमाला" शीर्षलेख)।

उत्तर

4

किसी भी विचार के लिए इस कोड के लिए उपयोगी हो सकता है क्या - सर्वर साइड ग्राहक चारसेट का पता लगाने के कुछ प्रकार?

जाहिर है।

यूरो चिह्न चारसेट का पता लगाने के लिए उपयोगी है क्योंकि वहाँ यह एन्कोडिंग के इतने तरीके हैं:

  • E2 82 अन्य में UTF-8
  • में 88 विंडोज़ -1251
  • 80 में एसी windows-125x एनकोडिंग
  • आईएसओ-8859-7, -15 में ए 4, और -16
  • ए 2 जीबी 18030
  • 85 40 में E3 में Shift-JIS
  • +०१२३५१६४१०
  • आदि

जहाँ तक मुझे पता है, ब्राउज़र चारसेट वैसे भी HTTP अनुरोध (एक "स्वीकार-वर्णसेट" शीर्षक) में प्रेषित किया जा रहा है।

यह HTTP Content-Type शीर्षक में प्रेषित करने के लिए चाहिए है, लेकिन इसका मतलब यह नहीं है कि उपयोगकर्ता एजेंट वास्तव में यह सही हो।

3

मुझे लगता है कि वे यह सुनिश्चित करने के लिए प्राप्तकर्ता स्क्रिप्ट में मेल खाते हैं कि क्लाइंट ने यूटीएफ -8 के रूप में उचित रूप से एन्कोड किया गया अनुरोध और शायद यहां तक ​​कि, क्योंकि वे जानते हैं कि कौन से पात्रों की उम्मीद है, फ्लाई पर वास्तविक एन्कोडिंग का पता लगाने के लिए।

अगर मुझे सही याद है - मुझे इसे एक बार निपटाना पड़ा - कुछ स्थितियों में आईई 6 में फॉर्म एन्कोडिंग में समस्याएं आई हैं।

+0

धन्यवाद, मैं इस आईई 6 संबंधित फॉर्म समस्या के बारे में Google पर जा रहा हूं। – Void

+0

मैं गलत हो सकता हूं, लेकिन मुझे लगता है * यह अस्पष्ट एन्कोडिंग के बारे में कुछ था (यानी जब 'सामग्री-प्रकार' हेडर 'सामग्री-प्रकार' मेटा टैग से कुछ अलग कहता है)। वैसे भी, मुझे लगता है कि फेसबुक ऐसा कर रहा है क्योंकि उन्हें सभी प्रकार के ग्राहकों द्वारा एक्सेस किया जा रहा है, और उन्हें यह सुनिश्चित करने की ज़रूरत है कि उनका एन्कोडिंग आम तौर पर सही है। –

0
&euro;,&acute;,€,´,水,Д,Є 

मुझे लगता है कि कुछ ब्राउज़र रूप &euro; ही और &acute;´ के रूप में ही भेजने के लिए,

तो वे जांच कर सकते हैं charset_test की तरह [0] == charset_test [2] और charset_test [1] == charset_test [ 3]

अन्य पात्रों के लिए, मेरे पास कोई सुराग नहीं है।水 शायद सीजेके के लिए परीक्षण।

0

जैसा कि पेक्का कहते हैं, यह अनुरोध पत्रसेट का पता लगाने में सक्षम होना है। HTTP प्रोटोकॉल अनुरोध के वर्णमाला को निर्दिष्ट करने का कोई तरीका प्रदान नहीं करता है। इस वजह से, किसी को प्रोटोकॉल के बाहर सम्मेलनों पर भरोसा करना पड़ता है। आम तौर पर ब्राउज़र अनुमानित होते हैं, लेकिन यह चाल 100% सुनिश्चित करने का एकमात्र तरीका है।

यह भी देखें: http://www.phpwact.org/php/i18n/charsets

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