Što je mojibake, odnosno čudni znakovi?

Mojibake su čudni znakovi koji se pojave umjesto hrvatskih slova: ć umjesto ć, ÄŤ umjesto č ili æ umjesto ć. Nastaju kad je tekst spremljen u jednom kodiranju, a pročitan u drugom – i gotovo se uvijek mogu potpuno popraviti. Zalijepite pokvareni tekst ispod i provjerite.

Radi s tekstom i datotekama:

  • CSV
  • TXT
  • JSON
  • XML
  • SRT
  • VTT
  • 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
  • Bez slanja. Datoteke se popravljaju u vašem pregledniku i nikada ne napuštaju uređaj.

  • Poslužitelji u EU. Mojibuster radi na poslužitelju u EU (Finska), zato vrijedi Opća uredba o zaštiti podataka (GDPR). Tekst GDPR-a (EUR-Lex)

Odakle naziv?

Mojibake (文字化け) je japanska riječ: „moji” znači „znak”, a „bake” „preobrazba”. Devedesetih su japanska računala usporedno koristila nekoliko kodiranja – Shift_JIS, EUC-JP i ISO-2022-JP – pa su pokvarene e-poruke i stranice bile svakodnevica. Riječ je prešla u engleski i postala međunarodni izraz. Kod nas se obično kaže „čudni znakovi” ili „pokvarene kvačice”.

Kako nastaju čudni znakovi?

Računalo pohranjuje tekst kao bajtove. Kodiranje određuje koji bajt znači koji znak. U UTF-8 slovo ć zauzima dva bajta: C4 87. Program koji ih čita kao Windows-1250 prikazuje zaseban znak za svaki bajt: Ä za C4 i ‡ za 87.

U tom koraku ništa se ne gubi – bajtovi su još uvijek tu, samo su krivo pročitani. Zato se čudni znakovi obično mogu poništiti: Mojibuster pogrešne znakove pretvara natrag u bajtove i čita ih u pravom kodiranju.

Tekst u UTF-8 pročitan kao Windows-1250

Čudni znakovi

Šećer, čaša i žličica – sastanak u četvrtak u 15:00

Nakon popravka

Šećer, čaša i žličica – sastanak u četvrtak u 15:00

Dvije vrste hrvatskih čudnih znakova

  • ć, ÄŤ, š umjesto ć, č, š – UTF-8 pročitan kao Windows-1250. Tipično za CSV datoteke otvorene u Excelu: kvačice u Excelu.
  • æ, è, ð umjesto ć, č, đ – stara datoteka u Windows-1250 ili ISO-8859-2 otvorena sa zapadnim postavkama: Windows-1250 u UTF-8.
  • U titlovima za filmove pojavljuju se obje varijante: kvačice u titlovima.

Mojibake u drugim jezicima

  • Japanski: 縺薙s縺ォ縺。縺ッ umjesto こんにちは – UTF-8 pročitan kao Shift_JIS. Više na japanskoj stranici.
  • Ruski: Привет umjesto Привет – UTF-8 pročitan kao Windows-1251. Rusi to zovu „krakozjabri”.
  • Zapadni jezici: é, ñ ili € umjesto é, ñ ili € – najčešći oblik u svijetu.

Tipični uzroci

  • Excel otvara CSV datoteku u UTF-8 bez BOM-a u kodiranju Windows-1250.
  • Veza s bazom podataka koristi latin1 ili latin2, a podaci su u UTF-8.
  • Web-stranica ili e-poruka navodi pogrešan charset.
  • Stare datoteke iz knjigovodstvenih ili državnih sustava spremljene su u Windows-1250 ili ISO-8859-2.
  • Već pokvaren tekst pretvori se još jednom – nastaju dvostruko pokvareni znakovi.

Mogu li se čudni znakovi uvijek popraviti?

Gotovo uvijek, dok god su bajtovi netaknuti. Popravak nije moguć kad je program slova zamijenio znakom ? ili zamjenskim znakom � – izvorna informacija je nestala. Mojibuster popravlja sve što se može i navodi koliko je mjesta izgubljeno.

Kako spriječiti čudne znakove?

  • Spremajte datoteke u UTF-8, a CSV datoteke za Excel kao CSV UTF-8 (razdvojeno zarezima).
  • Navedite kodiranje: <meta charset="utf-8"> u HTML-u, utf8mb4 u MySQL-u i MariaDB-u.
  • Pretvarajte tekst samo jednom, na granici između dvaju sustava.
  • Pri uvozu sami odaberite kodiranje umjesto da se oslanjate na pogađanje programa.

Česta pitanja

Kako se izgovara mojibake?

Otprilike „mo-dži-ba-ke”, sa sva četiri sloga jasno izgovorena. Riječ je japanska, pa nema jakog naglaska.

Je li moja datoteka oštećena ili zaražena virusom?

Ne. Čudni znakovi problem su prikaza, a ne virus, i obično ne znače gubitak podataka. Datoteka je samo pročitana u krivom kodiranju.

Po čemu se čudni znakovi razlikuju od znaka �?

Znakovi poput ć još uvijek sadrže izvorne bajtove i mogu se popraviti. Znak � znači da program nije mogao pročitati bajt i zamijenio ga je – to je slovo izgubljeno.

Šalje li se moj tekst na poslužitelj?

Ne. Mojibuster popravlja tekst u vašem pregledniku. Ne šalje se nikamo i nigdje se ne sprema.

Više uputa