Kysymysmerkit ääkkösten sijaan: mitä ? ja � tarkoittavat

Lukeeko tekstissä ? tai merkki � eikä ä, ö tai å? Ne näyttävät samanlaisilta, mutta syyt ovat erilaiset. Usein tiedosto on vielä täysin kunnossa – joskus kirjaimet ovat jo kadonneet. Näin näet, kumpi tapaus on kyseessä.

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)

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- tai ascii-merkistöä, vaikka data tulee UTF-8:na. MySQL korvaa silloin tuntemattomat merkit ?:llä. Aseta kaikki utf8mb4-merkistöön.
  • PowerShell 5.1: Export-Csv kirjoittaa 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ä

  1. Avaa tiedosto editorissa, joka näyttää merkistön, esimerkiksi Notepad++:ssa tai Muistiossa. Jos alareunassa lukee ”ANSI” tai ”Windows-1252”, kyseessä on tapaus 1.
  2. Pudota tiedosto Mojibusteriin. Jos tuloksessa lukee ”Luettu merkistöllä Windows-1252 (ANSI)” ja kirjaimet ovat palanneet, kyseessä oli tapaus 1.
  3. 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.

Lue lisää