Jika setiap /å/ö diwakili dalam output dengan dua byte, maka Anda mungkin juga mengkodekan karakter ganda. (Mengingat bahwa pertanyaan sudah menunjukkan Anda melakukan $dbh->{'mysql_enable_utf8'} = 1;
, saya menduga bahwa ini adalah kasus yang paling mungkin.) Kemungkinan lain, mengingat Anda menampilkan ini di halaman web, adalah halaman tersebut mungkin tidak menentukan bahwa rangkaian karakter adalah UTF-8 di <head>
dan browser mungkin salah menebak pengkodean karakter yang digunakannya.
Perhatikan baik-baik kerangka webapp Anda, sistem templating, dll. untuk memastikan bahwa nilai hanya dikodekan sekali antara saat diambil dari database dan saat mencapai browser pengguna. Banyak kerangka kerja/mesin templat (seperti kombinasi Penari dan TT yang biasa saya gunakan) akan menangani pengkodean keluaran secara otomatis jika Anda mengonfigurasinya dengan benar, yang berarti bahwa data akan dikodekan ganda jika dikodekan secara eksplisit sebelum dikeluarkan.