Mojibake nedir?
Mojibake, bir metin bir kodlamayla kaydedilip başka bir kodlamayla okunduğunda ortaya çıkan okunamaz karakterlerdir. En yaygın durum, UTF-8 metnin yanlışlıkla Windows-1252, Windows-1254 veya ISO-8859-1 olarak okunmasıdır. Bir özel karakterin her baytı ayrı bir karakter olarak görünür.
Sık görülen nedenler
- Veritabanı bağlantısı
latin1kullanıyor, oysa veriler UTF-8. - Web sunucusu
charset=ISO-8859-9veyaISO-8859-1gönderiyor, ama sayfa UTF-8 kaydedilmiş. - Bir e-posta veya bülten programı yanlış kodlama bildiriyor.
- Eski bir site ya da sunucu değiştiren bir WordPress, Latin-1 ve UTF-8 verilerini karıştırıyor.
- Farklı kodlamalar bekleyen programlar arasında kopyalanan metin.
İki kez bozulmuş: ü
Zaten bozuk bir metin bir kez daha yanlış dönüştürülürse çift mojibake oluşur: ü önce ü, sonra ü olur. Mojibuster bu katmanları da tanır ve tek seferde üç katmana kadar düzeltir.
Geliştiriciler için: sorunun kaynağını düzeltin
- HTML’de
<meta charset="utf-8">tanımlayın veContent-Type: text/html; charset=utf-8başlığını gönderin. - MySQL ve MariaDB’de tablolar ve bağlantı için
utf8mb4kullanın (SET NAMES utf8mb4). - Kaynak dosyaları BOM’suz UTF-8 olarak kaydedin.
- Metni yalnızca bir kez dönüştürün: sisteminiz ile dış dünya arasındaki sınırda.
Sık sorulan sorular
� karakteri ne anlama geliyor?
Bu, U+FFFD yerine koyma karakteridir. Bir program bir baytı okuyamadığında bunu ekler. Orijinal karakter kaybolmuştur; Mojibuster kaç yerin etkilendiğini gösterir.
ç gibi HTML kodlarını da dönüştürebilir miyim?
Evet. HTML kodlarını da dönüştür seçeneğini açın. ç, ç ve ç gibi kodlar gerçek karakterlere dönüşür.
Metnim bir yerde saklanıyor mu?
Hayır. Düzeltme tarayıcınızda gerçekleşir. Metin gönderilmez ve saklanmaz.
Başka dillerde de çalışır mı?
Evet. Mojibuster UTF-8’den yanlış okunan her karakteri düzeltir; örneğin Almanca, Fransızca veya İspanyolca harfleri, emojileri ya da Japonca yazıyı.