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.
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ä,utf8mb4MySQL: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.