Skjulte anførselstegn og tankestreker ødelegger kode: slik retter du dem
Buede anførselstegn, buede apostrofer, halvlange og lange tankestreker og hardt mellomrom ser ut som de vanlige tegnene, men en datamaskin behandler dem som ulike tegn. Kode, CSV-filer, regneark-formler og kommandolinjer forventer de vanlige. Et limt inn sitat slutter å være en streng, en dobbel bindestrek i et flagg blir til en tankestrek, og et hardt mellomrom kan gjøre at et program ikke leser en linje. Rett tegnene før du limer inn i kode, og test resultatet der det skal kjøre.
Fiks limt tekstLimt tekst har brutte linjerGjør det gratisHvor tegnene kommer fra
Tekstbehandlere og mange e-postprogrammer erstatter rette anførselstegn med buede etter hvert som du skriver. Dette kalles smarte anførselstegn. Word kan også gjøre to bindestreker om til en tankestrek. Nettsider og enkelte redigeringsverktøy setter inn harde mellomrom, U+00A0, som holder to ord på samme linje. Disse tegnene er riktige typografisk, og derfor dukker de opp. De er feil for alt et program leser.
Hva som går galt, og hvor
| Hvor | Hva som går galt |
|---|---|
| Kildekode | Buede anførselstegn er ikke strengavgrensere, og mange språk avviser et buet anførselstegn eller et hardt mellomrom utenfor en streng |
| Kommandoer i terminalen | En tankestrek skrevet som halvlang strek er ikke valgmarkøren, så programmet ser et ukjent argument |
| CSV-filer | Parsere omslutter felt i rette doble anførselstegn, så buede anførselstegn beskytter ikke et komma inne i et felt |
| Regneark-formler | De buede anførselstegnene blir en del av teksten, eller formelen gir en feilmelding |
| JSON | Buede anførselstegn er ikke gyldige strengavgrensere, så parseren feiler |
For reglene for sitering som CSV-filer følger, se veiledningen om CSV til JSON.
Gjør dem rette i fixmint
Tre verktøy dekker de vanlige tilfellene, og hvert av dem håndterer et eget sett med tegn.
- Buede anførselstegn. Åpne fiks limt tekst og huk av for Gjør anførselstegn rette. Det gjør buede enkle anførselstegn og apostrofer om til rette enkle anførselstegn, og buede doble anførselstegn om til rette doble anførselstegn. Tankestreker lar det være urørt. De andre valgene, som å trimme linjer og slå sammen gjentatte mellomrom, er huket av som standard.
- Tankestreker, tre prikker og rare mellomrom. Åpne fjern skjulte tegn og huk av for Gjør også buede anførselstegn, halvlange/lange tankestreker og … om til vanlig ASCII. Tankestreker blir til bindestrek, og tre prikker blir til tre punktum. Harde mellomrom blir vanlige mellomrom som standard. Den markerte visningen viser hvor hver endring er gjort.
- Ett tegn eller én frase. Åpne søk og erstatt, la Regulært uttrykk være av, og skriv tegnet i Søk og den vanlige versjonen i Erstatt. Når regulært uttrykk er av, er søkefeltet bokstavelig, så et buet anførselstegn treffer bare seg selv.
Her er det andre verktøyet brukt på en vanlig innliming:
| Før | Etter |
|---|---|
| “Hei,” sa hun. | "Hei," sa hun. |
| Det’s ferdig. | Det's ferdig. |
| —verbose | -verbose |
Den siste raden viser en begrensning. Hver tankestrek blir til én bindestrek, så en dobbel bindestrek som et tekstbehandlingsprogram slo sammen til én lang tankestrek, kommer tilbake som én bindestrek. Rett flagg som --verbose for hånd etter konverteringen.
Lim resultatet inn der det skal kjøre, og test det der. Å gjøre anførselstegn rette endrer ikke betydningen av teksten, så en vellykket kjøring er den egentlige kontrollen.
Kontroller resultatet
Kjør den rettede teksten gjennom fjern skjulte tegn én gang til, og les den markerte visningen. Et merke som står igjen, er et tegn den første runden ikke dekket, for eksempel et mellomrom med null bredde eller et uvanlig mellomrom. Den markerte visningen viser hvor hvert enkelt tegn sitter, så du kan rette det på stedet.
Tegnene ser nesten like ut på skjermen, så en visuell sjekk bommer på dem. Et rett og et buet anførselstegn skiller seg bare litt i form, og en halvlang strek ser ut som en bindestrek i mange skrifttyper. Test teksten, ikke øynene dine.
Når du ikke skal gjøre dem rette
Behold buede anførselstegn og tankestreker i tekst som folk leser på papir eller på en nettside. Der er de riktig typografi. Gjør bare kopien rett som skal inn i kode, en CSV-fil, en formel eller en kommando. For tekst du skriver i et tekstbehandlingsprogram, slå av alternativet for smarte anførselstegn hvis du senere skal lime teksten inn i kode.
Spesialtilfeller
- Blandede anførselstegn. Et dokument kan blande buede og rette anførselstegn. Kjør rettingen én gang, og søk deretter i resultatet etter de som er igjen, for kildene er ulike.
- Apostrofer i ord. En buet apostrof i en sammentrekning blir en rett, og det er det de fleste koder forventer. Sjekk eventuelle sammentrekninger som står inne i en streng.
- Behold kilden. Å gjøre anførselstegn rette er en enveisoperasjon: et rett anførselstegn kan ikke fortelle deg hvilket buet anførselstegn det kom fra. Ta vare på det originale dokumentet, og gjør endringen på en kopi.
- Tankestreker i setninger. En lang tankestrek brukt som avbrudd i en setning blir til en bindestrek, så «vent – stopp» blir til «vent - stopp». Skriv den på nytt for hånd hvis teksten er ment å leses, og ikke brukes som kode.
- Usynlige tegn. Limt tekst kan også inneholde mellomrom med null bredde. De er ikke anførselstegn, men de ødelegger kode på samme måte. Veiledningen om skjulte tegn dekker dem.
Oversatt fra Engelsk original med KI-hjelp.
Kommentarer
Ingen kommentarer ennå. Bli den første.


