Cudzysłowy w tekście – rodzaje, problemy i jak je poprawnie usuwać lub zamieniać
Cudzysłów to jeden z tych znaków, który wygląda niewinnie, dopóki nie trafi do bazy danych, pliku CSV lub kodu programu. Nagle okazuje się, że „Laptop 15" rozumiane jako tekst z cudzysłowami typograficznymi kompletnie inaczej zachowuje się niż "Laptop 15" z cudzysłowami prostymi. A jeszcze inaczej zachowuje się apostrof w nazwisku O'Brien. Ten artykuł wyjaśnia, skąd biorą się problemy z cudzysłowami i jak szybko je rozwiązać.
Ile rodzajów cudzysłowów istnieje?
Zaskakująco dużo. Każdy język i każdy system typograficzny wypracował własne konwencje:
- Cudzysłowy proste podwójne
"tekst"– standard w informatyce, plikach tekstowych, kodzie JSON/HTML/XML. - Cudzysłowy typograficzne angielskie
"tekst"– stosowane w edytorach Word, Pages, Google Docs po włączonej autokorekcie. - Cudzysłowy dolne polskie
„tekst"– otwierający cudzysłów w dół, zamykający w górę; standard w polskiej typografii. - Cudzysłowy francuskie
«tekst»– popularne we Francji, Rosji i kilku innych krajach europejskich. - Apostrof prosty
'– używany do skrótów, possesivów w językach angielskich i jako cudzysłów pojedynczy. - Apostrofy typograficzne
'tekst'– wstawiane przez autokorektę edytorów tekstowych.
Z punktu widzenia klawiatury i systemu operacyjnego każdy z tych znaków ma inny kod Unicode – komputer traktuje je jako całkowicie różne znaki, mimo że wyglądają podobnie.
Dlaczego cudzysłowy powodują problemy?
Bazy danych i SQL
W języku SQL cudzysłów (zarówno pojedynczy jak i podwójny) ma specjalne znaczenie – służy do otaczania ciągów tekstowych lub identyfikatorów. Gdy wartość w polu tekstowym sama zawiera cudzysłów, zapytanie SQL może się „rozpaść" lub – w gorszym przypadku – stać się podatne na atak SQL injection. Dlatego przed zapisaniem do bazy danych cudzysłowy w danych powinny być albo usunięte, albo zamienione na bezpieczne odpowiedniki.
Pliki CSV i Excel
Format CSV używa cudzysłowów podwójnych do otaczania pól zawierających przecinki lub nowe linie. Jeśli sama wartość pola zawiera cudzysłów, zgodnie ze standardem RFC 4180 należy go podwoić. Gdy tak się nie stanie, import do Excela lub innego programu zwróci przekłamane dane.
Kod HTML i atrybuty
W HTML wartości atrybutów są zamknięte w cudzysłowach: <img alt="zdjęcie produktu">. Jeśli opis produktu sam zawiera cudzysłowy (np. Monitor 27"), trzeba je zamienić na encję HTML " lub apostrofy – inaczej przeglądarka źle zinterpretuje kod strony.
JSON i API
Standard JSON dopuszcza wyłącznie cudzysłowy podwójne. Cudzysłowy typograficzne, polskie dolne czy apostrofy jako delimitery powodują błąd parsowania. To jest dokładnie ten błąd opisywany przez Google w narzędziu Schema.org – „Nieprawidłowy typ wartości" oznacza często właśnie użycie apostrofu zamiast cudzysłowu w JSON-LD.
Zamiana apostrofów na kropki – kiedy ma sens?
To może wydawać się dziwną operacją, ale ma konkretne zastosowanie. W niektórych krajach i systemach skróty pisane są z apostrofem zamiast kropki: ul' zamiast ul., m' zamiast m.. Może to być też efekt błędu kodowania, gdy plik był edytowany w systemie z innym układem klawiatury.
Innym przypadkiem są dane z systemów legacy (starych systemów informatycznych), gdzie apostrof służył jako separator dziesiętny lub skrót zapisu. Zamiana ' na . przywraca poprawny format danych.
Cudzysłowy typograficzne vs. proste – który jest „lepszy"?
Odpowiedź zależy od kontekstu. Do publikacji i typografii – zdecydowanie cudzysłowy typograficzne („polskie" lub "angielskie"), bo wyglądają profesjonalnie. Do wszelkiego rodzaju danych technicznych, kodu, baz danych, plików CSV, JSON, XML – wyłącznie cudzysłowy proste. Problem polega na tym, że edytory tekstowe takie jak Word domyślnie stosują autokorektę i wstawiają cudzysłowy typograficzne nawet jeśli tego nie chcemy.
Jak skutecznie ujednolicić cudzysłowy w dużym dokumencie?
- Skopiuj cały tekst do pola wejściowego narzędzia.
- Zdecyduj, jaką operację chcesz wykonać: usunąć cudzysłowy, zamienić na apostrofy lub zastąpić własnym znakiem.
- Użyj opcji własnego zamiennika, jeśli chcesz np. zamienić wszystkie cudzysłowy na encje HTML
". - Skopiuj wynik i wklej go z powrotem do dokumentu lub bazy danych.
Usuń lub zamień cudzysłowy we wklejonym tekście – obsługa wszystkich popularnych typów znaków.
Otwórz narzędzie →Praktyczne wskazówki
- Przed zapisem do bazy danych zawsze usuwaj lub escapuj cudzysłowy w danych wejściowych.
- Jeśli pracujesz z JSON ręcznie – używaj wyłącznie cudzysłowów prostych
"i escapuj je jako\"gdy pojawiają się w tekście. - Podczas kopiowania tekstu z PDF lub Word do systemu – sprawdź, czy autokorekta nie zamieniła prostych cudzysłowów na typograficzne.
- W Excelu: funkcja
PODSTAW()potrafi zamienić cudzysłów na pusty ciąg, np.=PODSTAW(A1;ZNAK(34);"")usuwa cudzysłowy proste.