Türkçe karakter yerine soru işareti: ? ve � ne anlama gelir?

Metninizde ş, ı ya da ğ yerine ? veya � işareti mi görünüyor? Benzer görünseler de nedenleri farklıdır. Çoğu zaman dosya hâlâ tamamen sağlamdır – bazen ise harfler gerçekten kaybolmuştur. Hangi durumda olduğunuzu şöyle anlarsınız.

Metinle ve şu dosyalarla çalışır:

  • CSV
  • TXT
  • JSON
  • XML
  • SRT
  • VTT
  • TSV
  • MD
  • HTML
  • SQL
  • LOG

Örneğin Excel dışa aktarımları, veritabanı yedekleri, altyazılar veya web sitesi kodu.

Düzelt

  1. Bir dosya bırakın veya metni yapıştırın
  2. Düzeltme otomatik yapılır
  3. Kopyalayın veya indirin
ya da bir dosyayı buraya sürükleyin
  • Dosya yükleme yok. Dosyalarınız doğrudan tarayıcınızda düzeltilir ve cihazınızdan asla çıkmaz.

  • AB’de sunucular. Mojibuster, Finlandiya’daki (AB) bir sunucuda çalışır; Genel Veri Koruma Tüzüğü (GDPR) geçerlidir. GDPR metni (EUR-Lex)

Durum 1: aslında sağlam bir dosyada �

Bir editör, oynatıcı ya da tarayıcı G�ne�li veya ya�mur gösteriyorsa dosya büyük olasılıkla Windows-1254 (Türkçe ANSI) ile kaydedilmiş ve UTF-8 olarak okunmuştur. Türkçe harfin baytı UTF-8’de geçersizdir, bu yüzden program onu gösterirken yerine koyma karakteri � ile değiştirir. Dosyanın kendisinde ise doğru bayt hâlâ durur.

Çözüm: Özgün dosyayı yukarıdaki kutuya bırakın. Mojibuster okurken kodlamayı tanır ve dosyayı UTF-8’e dönüştürür; sonuçta “Windows-1254 (ANSI) olarak okundu” yazar. Önemli: dosyanın kendisini kullanın, metni programdan kopyalamayın – kopyalarken � kalıcı hâle gelir.

Durum 2: � ya da ? metnin içine kaydedilmiş

Bir program metni yerine koyma karakteriyle kaydettiyse ya da başka bir yere aktardıysa özgün harf kaybolmuştur. Aynı şey ? için de geçerlidir: programlar hedef kodlamada bulunmayan bir karakterin yerine ? koyar. Türkçede bu çok tipiktir: ü, ö ve ç Batı Avrupa kodlamalarında vardır, ama ş, ı ve ğ yoktur. Sonuç Ay?e, ?i?li ya da Da??l?m olur, Gül ise sağlam kalır.

Buradan geriye hiçbir şey hesaplanamaz, çünkü farklı harflerin hepsi aynı işarete dönüşmüştür. Mojibuster tahminde bulunmak yerine kaç yerin etkilendiğini söyler. Yardımcı olabilecek tek şey kaynaktır: dışa aktarımı tekrarlayın ya da bir yedek kullanın.

Soru işaretlerinin tipik nedenleri

  • Veritabanı: sütun ya da bağlantı latin1 veya ascii kullanır, veriler ise UTF-8 gelir. MySQL bilinmeyen karakterleri ? ile değiştirir – ş ve ı dahil. Her şeyi utf8mb4 olarak ayarlayın.
  • PowerShell 5.1: Export-Csv varsayılan olarak ASCII yazar ve Türkçe harfleri ? yapar. -Encoding UTF8 parametresini ekleyin.
  • Python: encode('ascii', errors='replace') karakterleri uyarı vermeden ? ile değiştirir.
  • Komut istemi: Windows konsolu, kod sayfasında olmayan karakterleri ? olarak gösterir. Genellikle yalnızca görüntü yanlıştır, dosya değil.

Hangi durumda olduğunuzu nasıl anlarsınız?

  1. Dosyayı kodlamayı gösteren bir editörde açın, örneğin Notepad++ ya da Not Defteri. Durum çubuğunda “ANSI” ya da “Windows-1254” yazıyorsa durum 1’dir.
  2. Dosyayı Mojibuster’a bırakın. Sonuçta “Windows-1254 (ANSI) olarak okundu” yazıyor ve harfler geri gelmişse durum 1’dir.
  3. Mojibuster kaybolan karakterler bildiriyorsa durum 2’dir. O zaman yalnızca yeni bir dışa aktarım işe yarar.

Soru işareti yerine ÅŸ ya da ü gibi diziler görüyorsanız bu başka bir hatadır – ve neredeyse her zaman düzeltilebilir: ü, ÅŸ, ı yerine Türkçe karakter. Bozuk kesme işaretleri için: kesme işareti ve tırnaklar.

Sık sorulan sorular

Mojibuster ? işaretini yeniden harfe çevirebilir mi?

Hayır. Bir ? her harfin yerinde olabilir; Ay?e içindeki işaretin ş olduğunu biz tahmin edebiliriz, ama bilgi dosyada yoktur. Mojibuster bu yerlere dokunmaz, yalnızca kaç tane olduğunu söyler.

Neden bir programda � görüyorum da diğerinde görmüyorum?

O zaman dosya sağlamdır ve programlardan yalnızca biri onu yanlış kodlamayla okuyor. Mojibuster ile UTF-8’e dönüştürün, ikisi de doğru gösterir. Excel’deki CSV dosyaları için: Excel’de Türkçe karakter sorunu.

� karakteri nedir?

U+FFFD yerine koyma karakteridir. Programlar bir baytı karakter olarak okuyamadığında onu ekler. Bir kodlama hatasına işaret eder ve asıl metnin parçası değildir.

Diğer rehberler