यदि प्रत्येक ä/å/ö को आउटपुट में दो बाइट्स द्वारा दर्शाया जा रहा है, तो यह भी संभव है कि आप वर्णों को डबल-एन्कोडिंग कर रहे हों। (यह देखते हुए कि प्रश्न पहले से ही आपको $dbh->{'mysql_enable_utf8'} = 1;
करते हुए दिखाता है , मुझे संदेह है कि यह सबसे अधिक संभावित मामला है।) एक और संभावना है, यह देखते हुए कि आप इसे वेब पेज पर प्रदर्शित कर रहे हैं, यह पृष्ठ यह निर्दिष्ट नहीं कर रहा है कि वर्णसेट यूटीएफ -8 है <head>
और ब्राउज़र अपने द्वारा उपयोग किए जाने वाले वर्ण एन्कोडिंग पर गलत अनुमान लगा सकता है।
यह सुनिश्चित करने के लिए अपने वेबएप ढांचे, टेम्पलेटिंग सिस्टम इत्यादि पर एक नजदीकी नज़र डालें कि मान केवल एक बार एन्कोड किए जा रहे हैं जब वे डेटाबेस से पुनर्प्राप्त किए जाते हैं और जब वे उपयोगकर्ता के ब्राउज़र तक पहुंचते हैं। कई फ्रेमवर्क/टेम्पलेट इंजन (जैसे डांसर और टीटी का संयोजन जिनका मैं सामान्य रूप से उपयोग करता हूं) आउटपुट एन्कोडिंग को स्वचालित रूप से संभाल लेंगे यदि आप उन्हें सही तरीके से कॉन्फ़िगर करते हैं, जिसका अर्थ है कि डेटा डबल-एन्कोडेड होगा यदि यह आउटपुट होने से पहले स्पष्ट रूप से एन्कोड किया गया है।पी>