Buede anførselstegn og tankestreger ødelægger kode: sådan retter du dem
Buede anførselstegn, buede apostroffer, en- og em-streger og hårde mellemrum ligner deres almindelige udgaver, men en computer behandler dem som forskellige tegn. Kode, CSV-filer, regnearksformler og kommandolinjer forventer de almindelige. Et indsat citat holder op med at være en streng, en dobbelt bindestreg i et flag bliver til en tankestreg, og et hårdt mellemrum kan få et program til at springe en linje over. Ret tegnene, inden du indsætter i kode, og test resultatet dér, hvor det skal køre.
Ret indsat tekstIndsat tekst har brudte linjerPrøv gratisHvor tegnene kommer fra
Tekstbehandlingsprogrammer og mange mailprogrammer erstatter lige anførselstegn med buede, mens du skriver. Det kaldes smarte anførselstegn. Word kan også lave to bindestreger om til en tankestreg. Websider og nogle editorer indsætter hårde mellemrum, U+00A0, som holder to ord på samme linje. Tegnene er korrekte typografisk, og derfor dukker de op. Men de er forkerte for alt, hvad et program læser.
Hvad går i stykker, og hvor
| Hvor | Hvad går galt |
|---|---|
| Kildekode | Buede anførselstegn er ikke strengafgrænsere, og mange sprog afviser et buet anførselstegn eller et hårdt mellemrum uden for en streng |
| Shell-kommandoer | En tankestreg skrevet som en tankestreg er ikke optionsmarkøren, så programmet ser et ukendt argument |
| CSV-filer | Parsere omslutter felter i lige dobbelte anførselstegn, så buede anførselstegn ikke beskytter et komma inde i et felt |
| Regnearksformler | De buede anførselstegn bliver en del af teksten, eller formlen giver en fejl |
| JSON | Buede anførselstegn er ikke gyldige strengafgrænsere, så parseren fejler |
Reglerne for citering i CSV-filer finder du i CSV til JSON-guiden.
Ret dem i fixmint
Tre værktøjer dækker de almindelige tilfælde, og hvert af dem håndterer et sæt tegn.
- Buede anførselstegn. Åbn Ret indsat tekst og sæt flueben ved Ret lige anførselstegn. Den gør buede enkelte anførselstegn og apostroffer til et lige enkelt anførselstegn og buede dobbelte anførselstegn til lige dobbelte anførselstegn. Tankestreger lades være. De øvrige valgmuligheder, som at trimme linjer og samle gentagne mellemrum, er slået til som standard.
- Tankestreger, tre prikker og mærkelige mellemrum. Åbn Fjern skjulte tegn og sæt flueben ved Konverter også buede anførselstegn, en-/em-streger og … til almindelig ASCII. Tankestreger bliver til en bindestreg, og tre prikker bliver til tre punktummer. Hårde mellemrum bliver som standard til almindelige mellemrum. Den markerede visning viser, hvor hver ændring er lavet.
- Ét tegn eller én frase. Åbn Find og erstat, lad Regex være fra, og skriv tegnet i Find og dets almindelige udgave i Erstat. Med Regex fra er feltet Find bogstaveligt, så et buet anførselstegn matcher kun sig selv.
Her er det andet værktøj brugt på en typisk indsættelse:
| Før | Efter |
|---|---|
| “Hello,” she said. | "Hello," she said. |
| It’s done. | It's done. |
| —verbose | -verbose |
Den sidste række viser en begrænsning. Hver tankestreg bliver til én bindestreg, så en dobbelt bindestreg, som et tekstbehandlingsprogram har slået sammen til én em-streg, kommer tilbage som en enkelt bindestreg. Ret flag som --verbose i hånden efter konverteringen.
Indsæt resultatet dér, hvor det skal køre, og test det dér. Retning af tegnene ændrer ikke teksten betydning, så en vellykket kørsel er den egentlige kontrol.
Kontroller resultatet
Kør den rettede tekst gennem Fjern skjulte tegn én gang til, og læs den markerede visning. Et mærke, der stadig er tilbage, er et tegn, som første gennemgang ikke dækkede, for eksempel et mellemrum uden bredde eller et usædvanligt mellemrum. Den markerede visning viser, hvor hvert enkelt sidder, så du kan rette det på stedet.
Tegnene ser næsten ens ud på skærmen, så et visuelt tjek overser dem. Et lige og et buet anførselstegn adskiller sig kun lidt i form, og en en-streg ligner en bindestreg i mange skrifttyper. Test teksten, ikke dine øjne.
Hvornår du ikke skal rette dem
Behold buede anførselstegn og tankestreger i tekst, folk læser på tryk eller på en webside. Der er de den rigtige typografi. Ret kun den tekst, der skal ind i kode, en CSV-fil, en formel eller en kommando. Til tekst du skriver i et tekstbehandlingsprogram, slår du valgmuligheden for smarte anførselstegn fra, hvis du senere skal indsætte teksten i kode.
Specielle tilfælde
- Blandede anførselstegn. Et dokument kan blande buede og lige anførselstegn. Kør rettetrinnet én gang, og søg derefter i resultatet efter dem, der er tilbage, for kilderne er forskellige.
- Apostroffer i ord. Et buet apostrof i en sammentrækning bliver til et lige, hvilket er det, de fleste koder forventer. Tjek de sammentrækninger, der optræder inde i en streng.
- Gem originalen. Retning er en enkeltvejsproces: et lige anførselstegn kan ikke fortælle, hvilket buet anførselstegn det kom fra. Behold det originale dokument, og lav ændringen på en kopi.
- Tankestreger i sætninger. En em-streg brugt som skilletegn i en sætning bliver til en bindestreg, så "wait — stop" bliver til "wait - stop". Skriv den igen i hånden, hvis teksten er til læsning og ikke til kode.
- Usynlige tegn. Indsat tekst kan også indeholde mellemrum uden bredde. De er ikke anførselstegn, men de ødelægger kode på en lignende måde. Guiden om skjulte tegn i tekst dækker dem.
Oversat fra Engelsk original med AI-hjælp.
Kommentarer
Ingen kommentarer endnu. Vær den første.


