स्पेनिश के लिए एचटीएमएल एन्कोडिंग, स्थानीय रूप से काम कर रहा है लेकिन सर्वर पर नहीं

मैं एक भाषा के रूप में स्पेनिश जोड़ रहा हूं और मुझे एन्कोडिंग में समस्याएं आ रही हैं।

सभी स्पेनिश वर्ण पूरी तरह से स्थानीय रूप से काम करते हैं (इससे डीबग करना मुश्किल हो जाता है):

enter image description here

लेकिन सर्वर पर वे इस तरह से दिखते हैं:

enter image description here

मैं बहुत परेशान हूं, आप बीटा संस्करण यहां देख सकते हैं।

मेरा डॉक्टरेट और वर्णमाला निम्नलिखित हैं:

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
...

जहां तक ​​मैं समझता हूं, जो सही होना चाहिए।

मैं अनुवाद के लिए गेटटेक्स्ट का उपयोग कर रहा हूं।

मैंने जांच की और .po फ़ाइल की घोषित एन्कोडिंग यूटीएफ -8 है।

मैंने bind_textdomain_codeset को यूटीएफ -8 पर भी सेट किया है।

मुझे यकीन नहीं है कि समस्या वास्तव में कहां चल रही है।

0
HTTP सामग्री-प्रकार हेडर कैसा दिखता है?
जोड़ा लेखक deceze, स्रोत
जोड़ा लेखक Trufa, स्रोत

1 उत्तर

आपका सर्वर इस सामग्री-प्रकार शीर्षलेख वाले पृष्ठों की सेवा करने के लिए सेट है:

Content-Type:text/html; charset=iso-8859-1

आपको इसे charset = utf-8 के रूप में उनकी सेवा करने के लिए बताने की आवश्यकता है। आप इसे PHP में भी कर सकते हैं:

header('Content-Type: text/html; charset=utf-8');
3
जोड़ा
क्योंकि इसका डिफ़ॉल्ट आपके स्थानीय सर्वर से अलग सेट है। इस बात का कोई लेना-देना नहीं है कि आप वास्तव में कौन सी वर्ण भेज रहे हैं, यह सिर्फ एक डिफ़ॉल्ट पंक्ति है जो सर्वर जोड़ता है यदि आप इसे स्वयं नहीं करते हैं।
जोड़ा लेखक deceze, स्रोत
बहुत बढ़िया, यह सही काम करता है! लेकिन मुझे समझ में नहीं आता कि समस्या वास्तव में कहां है, सर्वर एक और वर्णमाला की सेवा क्यों कर रहा है?
जोड़ा लेखक Trufa, स्रोत
@Trufa - सर्वर आपके दस्तावेज़ों को पढ़ने वाले संसाधनों को बर्बाद नहीं करेगा और अनुमान लगाएगा कि उनका एन्कोडिंग क्या है। आपको इसे स्पष्ट रूप से सेट करना होगा। (इसके अलावा, अनुमान काम नहीं करेगा।)
जोड़ा लेखक Álvaro González, स्रोत