Upitnici umjesto slova: što znače ? i �

Umjesto č, ć ili đ u tekstu stoji ? ili znak �? Izgledaju slično, ali imaju različit uzrok. Često je datoteka potpuno ispravna. Ponekad su slova ipak već izgubljena. Ovdje saznajete o kojem je slučaju riječ.

Radi s tekstom i datotekama:

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

Na primjer izvozi iz Excela, ispisi baza podataka, titlovi za filmove ili kod web-stranica.

Popravi

  1. Povucite datoteku ili zalijepite tekst
  2. Popravak se odvija automatski
  3. Kopirajte ili preuzmite
ili jednostavno povucite datoteku ovamo

Slučaj 1: � u ispravnoj datoteci

Uređivač, televizor ili preglednik prikazuje � umjesto č, ć ili đ? Datoteka je najčešće spremljena u starom kodiranju Windows-1250 (ANSI) ili ISO-8859-2, a program je čita kao UTF-8. Bajt slova s kvačicom u UTF-8 nije valjan. Program zato pri prikazu umeće zamjenski znak �. U datoteci je i dalje ispravan bajt.

Rješenje: Povucite izvornu datoteku u polje iznad. Mojibuster pri čitanju prepoznaje kodiranje i pretvara datoteku u UTF-8. Važno: koristite samu datoteku, ne kopirajte tekst iz programa. Kopiranjem � postaje trajan. Više o starom kodiranju: pretvorba Windows-1250 u UTF-8.

Slučaj 2: � ili ? spremljen je u samom tekstu

Ako je program spremio ili proslijedio tekst zajedno sa zamjenskim znakom, izvorno slovo je nestalo. Isto vrijedi za ?. Programi ga umeću kad znak ne postoji u ciljnom kodiranju. To se događa npr. pri spremanju kao ASCII ili pri upisu u stupac baze podataka koji ne poznaje č.

Unatrag se ništa ne može izračunati jer je svako slovo s kvačicom postalo isti znak. Mojibuster zato ne pogađa, nego pokazuje koliko je mjesta pogođeno. Pomaže samo izvor: ponovite izvoz ili upotrijebite sigurnosnu kopiju.

Tipični uzroci upitnika

  • Baza podataka: stupac ili veza koristi latin1 ili ascii, a podaci stižu u UTF-8. latin1 nema č, ć ni đ, pa ih MySQL zamjenjuje znakom ? – dok š i ž često ostanu jer ih to kodiranje ima. Vidi MySQL i phpMyAdmin.
  • PHP bez skupa znakova: stranica ili veza s bazom nema postavljen UTF-8. Preglednik tada prikazuje � ili se u bazu spremi ?.
  • PowerShell 5.1: Export-Csv prema zadanim postavkama piše ASCII i slova s kvačicama zamjenjuje znakom ?. Vidi PowerShell.
  • Python: encode('ascii', errors='replace') bez upozorenja zamjenjuje znakove upitnikom. Vidi Python i pandas.
  • Bilježnica: pri spremanju kao ANSI znakovi kojih nema u Windows-1250 (npr. emoji ili ćirilica) postaju ?.
  • Naredbeni redak: konzola u Windowsima prikazuje znakove koje njezina kodna stranica ne poznaje kao ?. Najčešće je pogrešan samo prikaz, a ne datoteka.
  • Stariji programi za e-poštu: poruka bez navedenog kodiranja kod primatelja se prikazuje s � ili ? umjesto kvačica.

Kako prepoznati o kojem je slučaju riječ

  1. Otvorite datoteku u uređivaču koji prikazuje kodiranje, npr. u Notepad++. Ako statusna traka pokazuje „ANSI” ili „Windows-1250”, riječ je o slučaju 1.
  2. Povucite datoteku u Mojibuster. Ako rezultat navodi da je datoteka pročitana kao Windows-1250 i slova su se vratila, bio je to slučaj 1.
  3. Ako Mojibuster javlja izgubljene znakove, riječ je o slučaju 2. Tada pomaže samo novi izvoz.

Ako umjesto upitnika vidite znakove poput ć umjesto ć ili Ä‘ umjesto đ, to je druga greška – i ona se gotovo uvijek može popraviti: što je mojibake.

Česta pitanja

Može li Mojibuster vratiti ? u slova?

Ne. ? može zamjenjivati bilo koje slovo, informacija je izgubljena. Mojibuster takva mjesta ne mijenja, ali pokazuje koliko ih je.

Zašto vidim � u jednom programu, a u drugom ne?

Tada je datoteka ispravna, samo je jedan od programa čita u pogrešnom kodiranju. Pretvorite je Mojibusterom u UTF-8 i oba programa će je prikazati ispravno.

Što je znak �?

Zamjenski znak U+FFFD. Programi ga umeću kad bajt ne mogu pročitati kao znak. Upućuje na grešku kodiranja i nije dio stvarnog teksta.

Više uputa