Tapaus 1: � tiedostossa, joka on oikeastaan ehjä
Jos editori, soitin tai selain näyttää Jyv�skyl� tai H�meenlinna, tiedosto on yleensä tallennettu Windows-1252:na (ANSI) ja luetaan UTF-8:na. Kirjaimen tavu ei kelpaa UTF-8:ssa, joten ohjelma lisää näytettäessä korvausmerkin �. Itse tiedostossa ovat yhä oikeat tavut.
Ratkaisu: pudota alkuperäinen tiedosto yllä olevaan ruutuun. Mojibuster tunnistaa merkistön tiedostoa luettaessa ja muuntaa sen UTF-8:ksi. Tärkeää: käytä itse tiedostoa äläkä kopioi tekstiä ohjelmasta – kopioitaessa � jää pysyväksi.
Tapaus 2: � tai ? on todella tekstissä
Jos ohjelma on tallentanut tai välittänyt tekstin korvausmerkin kanssa, alkuperäinen kirjain on kadonnut. Sama pätee merkkiin ?: ohjelmat lisäävät sen, kun merkkiä ei ole kohdemerkistössä – esimerkiksi kun tiedosto tallennetaan ASCII-muodossa, jolloin Jyväskylä muuttuu muotoon Jyv?skyl?.
Tästä ei voi laskea mitään takaisin, koska jokaisesta ä:stä, ö:stä ja å:sta on tullut sama merkki. Mojibuster kertoo, kuinka monta kohtaa asia koskee, sen sijaan että arvaisi. Silloin auttaa vain lähde: vie tiedot uudelleen tai käytä varmuuskopiota.
Tyypillisiä syitä kysymysmerkkeihin
- Tietokanta: sarake tai yhteys käyttää
latin1- taiascii-merkistöä, vaikka data tulee UTF-8:na. MySQL korvaa silloin tuntemattomat merkit?:llä. Aseta kaikkiutf8mb4-merkistöön. - PowerShell 5.1:
Export-Csvkirjoittaa oletuksena ASCII-muotoa ja muuttaa ääkköset?:ksi. Lisää-Encoding UTF8. - Python:
encode('ascii', errors='replace')korvaa merkit?:llä varoittamatta. - Komentokehote: Windowsin konsoli näyttää merkit, joita sen merkistö ei tunne,
?:nä. Yleensä vain näyttö on väärin, ei tiedosto.
Näin näet, kumpi tapaus on kyseessä
- Avaa tiedosto editorissa, joka näyttää merkistön, esimerkiksi Notepad++:ssa tai Muistiossa. Jos alareunassa lukee ”ANSI” tai ”Windows-1252”, kyseessä on tapaus 1.
- Pudota tiedosto Mojibusteriin. Jos tuloksessa lukee ”Luettu merkistöllä Windows-1252 (ANSI)” ja kirjaimet ovat palanneet, kyseessä oli tapaus 1.
- Jos Mojibuster ilmoittaa kadonneista merkeistä, kyseessä on tapaus 2. Silloin auttaa vain uusi vienti.
Jos näet kysymysmerkkien sijaan merkkijonoja kuten ä, kyseessä on eri virhe – ja sen voi lähes aina korjata: ä ä:n sijaan. Rikkinäiset merkit kuten – ja ’ löydät sivulta heittomerkit ja lainausmerkit.
Usein kysyttyä
Voiko Mojibuster muuttaa ?-merkit takaisin kirjaimiksi?
Ei. ? voi tarkoittaa mitä tahansa kirjainta, tieto on kadonnut. Mojibuster jättää tällaiset kohdat ennalleen mutta kertoo, kuinka monta niitä on.
Miksi näen merkin � yhdessä ohjelmassa mutta en toisessa?
Silloin tiedosto on kunnossa, ja vain toinen ohjelmista lukee sen väärällä merkistöllä. Muunna se Mojibusterilla UTF-8:ksi, niin molemmat näyttävät sen oikein. Excelin CSV-tiedostoista voit lukea täältä, miten asia liittyy tähän.
Mikä merkki � on?
Korvausmerkki U+FFFD. Ohjelmat lisäävät sen, kun ne eivät pysty lukemaan tavua merkkinä. Se viittaa koodausvirheeseen eikä kuulu varsinaiseen tekstiin.