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
latin1iliascii, a podaci stižu u UTF-8.latin1nemač,ć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-Csvprema 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č
- 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.
- 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.
- 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.