Tilfelle 1: � i en fil som egentlig er hel
Viser et redigeringsprogram, en avspiller eller en nettleser Troms� eller Bod�, er filen som regel lagret i Windows-1252 (ANSI) og leses som UTF-8. Byten for bokstaven er ugyldig i UTF-8, så programmet setter inn erstatningstegnet � når teksten vises. I selve filen står de riktige bytene fortsatt.
Løsning: dra den opprinnelige filen inn i feltet over. Mojibuster kjenner igjen tegnsettet når filen lastes inn, og konverterer den til UTF-8. Viktig: bruk selve filen, og ikke kopier teksten fra programmet – ved kopieringen blir � permanent.
Tilfelle 2: � eller ? står virkelig i teksten
Har et program lagret eller sendt teksten videre med erstatningstegnet, er den opprinnelige bokstaven tapt. Det samme gjelder ?: programmer setter det inn når et tegn ikke finnes i målkodingen – for eksempel når filen lagres som ASCII, slik at Ålesund blir til ?lesund.
Ut fra dette kan ingenting regnes tilbake, fordi hver æ, ø og å er blitt til det samme tegnet. Mojibuster forteller hvor mange steder det gjelder, i stedet for å gjette. Da hjelper bare kilden: eksporter på nytt, eller bruk en sikkerhetskopi.
Typiske årsaker til spørsmålstegn
- Database: kolonnen eller tilkoblingen bruker
latin1ellerascii, mens dataene kommer inn som UTF-8. MySQL erstatter da ukjente tegn med?. Still inn alt påutf8mb4. - PowerShell 5.1:
Export-Csvskriver som standard ASCII og gjør æ, ø og å om til?. Oppgi-Encoding UTF8. - Python:
encode('ascii', errors='replace')erstatter tegn med?uten advarsel. - Ledeteksten: Windows-konsollen viser tegn som tegntabellen dens ikke kjenner, som
?. Den bruker fortsatt gamle DOS-tegntabeller – i DOS-tiden fantes det til og med en egen nordisk tegntabell, 865. Som regel er det bare visningen som er feil, ikke filen.
Slik ser du hvilket tilfelle du har
- Åpne filen i et redigeringsprogram som viser tegnsettet, for eksempel Notepad++ eller Notisblokk. Står det «ANSI» eller «Windows-1252» nederst, er det tilfelle 1.
- Dra filen inn i Mojibuster. Står det «Lest som Windows-1252 (ANSI)» i resultatet, og er bokstavene tilbake, var det tilfelle 1.
- Melder Mojibuster om tapte tegn, er det tilfelle 2. Da hjelper bare en ny eksport.
Ser du tegnrekker som ø i stedet for spørsmålstegn, er det en annen feil – og den kan nesten alltid fikses: ø i stedet for ø. Ødelagte tegn som – og ’ finner du under apostrofer og anførselstegn.
Ofte stilte spørsmål
Kan Mojibuster gjøre ? om til bokstaver igjen?
Nei. Et ? kan stå for hvilken som helst bokstav; informasjonen er borte. Mojibuster lar slike steder være, men forteller hvor mange det er.
Hvorfor ser jeg � i ett program, men ikke i et annet?
Da er filen i orden, og bare det ene programmet leser den med feil tegnsett. Konverter den til UTF-8 med Mojibuster, så viser begge den riktig. Hvordan dette henger sammen med CSV-filer i Excel, kan du lese her.
Hva er tegnet �?
Erstatningstegnet U+FFFD. Programmer setter det inn når de ikke kan lese en byte som et tegn. Det tyder på en kodingsfeil og hører ikke til den egentlige teksten.