Mikä on mojibake?

Mojibake on ammattitermi oudoille merkeille: ä eikä ä, ö eikä ö tai € eikä €. Se syntyy, kun teksti tallennetaan yhdellä merkistökoodauksella ja luetaan toisella – ja yleensä sen voi korjata kokonaan. Liitä alle rikkinäinen teksti ja kokeile.

Toimii tekstin ja näiden tiedostojen kanssa:

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

Esimerkiksi Excel-viennit, tietokantavarmuuskopiot, tekstitykset tai verkkosivujen koodi.

Korjaa

  1. Pudota tiedosto tai liitä teksti
  2. Korjaus tapahtuu automaattisesti
  3. Kopioi tai lataa
tai pudota tiedosto tähän
  • Ei latausta palvelimelle. Tiedostosi korjataan suoraan selaimessa, eivätkä ne koskaan poistu laitteeltasi.

  • Palvelimet EU:ssa. Mojibuster toimii palvelimella Suomessa (EU); EU:n yleinen tietosuoja-asetus (GDPR) on voimassa. Tietosuoja-asetuksen teksti (EUR-Lex)

Mistä sana tulee

Mojibake (文字化け) on japania: ”moji” tarkoittaa ”merkkiä” ja ”bake” ”muodonmuutosta”. 1990-luvulla japanilaisissa tietokoneissa käytettiin rinnakkain useita merkistöjä – Shift_JIS, EUC-JP ja ISO-2022-JP –, ja lukukelvottomat sähköpostit ja verkkosivut olivat arkipäivää. Sana jäi elämään ja siirtyi englantiin. Suomeksi puhutaan yleensä vain ”oudoista merkeistä” tai siitä, että ”ääkköset menevät sekaisin” tai ”skandit hajoavat”.

Miten mojibake syntyy

Tietokone tallentaa tekstin tavuina. Merkistökoodaus määrää, mitkä tavut kuuluvat mihinkin merkkiin. UTF-8:ssa ä tallennetaan kahtena tavuna C3 A4. Ohjelma, joka lukee nämä tavut Windows-1252:na, näyttää yhden merkin tavua kohden: Ã tavulle C3 ja ¤ tavulle A4.

Tässä vaiheessa mitään ei katoa: tavut ovat tallella, ne vain luetaan väärin. Siksi mojibaken voi lähes aina kääntää takaisin: Mojibuster laskee väärät merkit takaisin tavuiksi ja lukee ne taas oikein.

UTF-8-teksti luettuna Windows-1252:na

Mojibake

Järvenpää, Hämeenlinna, Äänekoski, Mäkinen ja Jääskeläinen – 5 €

Korjattu

Järvenpää, Hämeenlinna, Äänekoski, Mäkinen ja Jääskeläinen – 5 €

Mojibake muilla kielillä

  • Japani: 縺薙s縺ォ縺。縺ッ eikä こんにちは – UTF-8 luettuna Shift_JIS-merkistöllä. Lisää japaninkielisellä sivulla.
  • Kiina: 浣犲ソ eikä 你好 – UTF-8 luettuna GBK-merkistöllä. Kiinaksi ilmiötä kutsutaan nimellä 乱码 (luànmǎ, ”sekava koodi”).
  • Venäjä: Привет eikä Привет – UTF-8 luettuna Windows-1251:nä. Venäjäksi puhutaan ”krakozjabroista”.
  • Suomi, ruotsi, saksa …: ä, ö tai € eikä ä, ö tai € – maailman yleisin muoto. Kaikki kuviot: ä ä:n sijaan. Suomen ruotsinkielisille sama sivusto löytyy myös ruotsiksi.

Tyypillisiä syitä

  • Excel avaa UTF-8-muotoisen CSV:n ilman BOM-merkkiä kaksoisnapsautuksella ANSI-tiedostona: Excel näyttää ääkköset väärin.
  • Verkkokaupan, CRM:n tai pankin CSV-vienti avataan väärällä merkistöllä: korjaa CSV.
  • Verkkosivu tai sähköposti ilmoittaa väärän charset-arvon tai tietokantayhteys käyttää latin1-merkistöä: korjaa UTF-8-merkit.
  • Tekstitykset on tallennettu vanhalla merkistöllä: oudot merkit tekstityksissä.
  • Jo rikkinäinen teksti muunnetaan uudelleen – kaksinkertainen mojibake kuten ä.

Voiko sen aina korjata?

Lähes aina, kunhan tavut ovat ehjiä. Ei enää silloin, kun ohjelma on jo korvannut merkit merkillä ? tai korvausmerkillä �: silloin alkuperäinen tieto on kadonnut. Mojibuster korjaa kaiken korjattavissa olevan, jopa kolme koodaustasoa kerralla, ja kertoo, kuinka monta merkkiä on kadonnut. Milloin ? ja � voi vielä pelastaa: kysymysmerkit kirjainten sijaan.

Näin vältät sen

  • Tallenna tiedostot UTF-8:na – Excelin CSV-tiedostot muodossa CSV UTF-8 (pilkuin erotettu), joka lisää BOM-merkin.
  • Ilmoita merkistö: <meta charset="utf-8"> HTML:ssä, utf8mb4 MySQL:ssä ja MariaDB:ssä.
  • Muunna teksti vain kerran, kahden järjestelmän rajalla.
  • Valitse merkistö itse tuonnin yhteydessä äläkä anna ohjelman arvata.

Usein kysyttyä

Miten mojibake lausutaan?

Suunnilleen ”mo-dji-ba-ke”, kaikki neljä tavua lausuttuina – suomalaiselle helppo sana.

Onko tiedostoni vioittunut tai saanut viruksen?

Ei. Mojibake on näyttöongelma, ei virus, eikä tietoja yleensä katoa. Tiedosto vain luetaan väärällä merkistöllä.

Mitä eroa on mojibakella ja merkillä �?

Oudot merkit kuten ä sisältävät yhä alkuperäiset tavut, ja ne voi korjata. Merkki � tarkoittaa, että ohjelma ei pystynyt lukemaan tavua ja korvasi sen: se merkki on kadonnut.

Lähetetäänkö tekstini palvelimelle?

Ei. Mojibuster korjaa tekstin selaimessasi. Mitään ei lähetetä eikä tallenneta.

Lue lisää