텍스트에 “&”가 보이는 이유와 고치는 방법
게시일 · 업데이트 읽는 데 2분
텍스트에 “&” 대신 “&”가 보인다면 HTML 엔티티가 한 번 더 인코딩된 것입니다. 도구는 한 번에 한 단계씩 디코딩하고 남은 것이 있으면 알려 줍니다.
HTML 엔티티란
엔티티는 페이지 코드용으로 예약된 문자를 나타내는 기호의 나열입니다. 흔한 것은 다섯 가지입니다.
| 문자 | 엔티티 |
|---|---|
| & | & |
| < | < |
| > | > |
| " | " |
| '(곧은 아포스트로피) | ' |
이중 인코딩이 생기는 곳
텍스트가 각각 인코딩을 하는 두 시스템을 거치는 경우가 있습니다. 편집기, 그다음 페이지 템플릿. 거칠 때마다 앞 엔티티의 “&”가 변환됩니다. HTML 엔티티 인코딩 및 디코딩으로 “Tom & Jerry”를 인코딩하면 “Tom & Jerry”가 되고, 그 결과를 다시 인코딩하면 “Tom &amp; Jerry”가 됩니다.
| 단계 | 결과 텍스트 |
|---|---|
| 원본 텍스트 | Tom & Jerry |
| 한 번 인코딩 | Tom & Jerry |
| 두 번 인코딩 | Tom &amp; Jerry |
브라우저는 표시할 때 한 단계를 디코딩합니다. 그래서 두 번 인코딩된 텍스트는 “&” 대신 “&”로 보입니다.
한 번에 한 단계씩 디코딩하기
도구는 한 번에 엔티티를 한 단계만 제거합니다. 결과에 엔티티가 아직 있으면 “둘 다” 모드가 알려 주며, 그 결과에 디코딩을 다시 실행합니다.
| 텍스트 | 첫 번째 디코딩 | 두 번째 디코딩 |
|---|---|---|
| Tom &amp; Jerry | Tom & Jerry | Tom & Jerry |
| &lt;b&gt;gras&lt;/b&gt; | <b>gras</b> | <b>gras</b> |
한 단계만 디코딩하면 의도한 인코딩을 되돌리는 일을 피할 수 있습니다. 화면에 “&”를 보여 줘야 하는 코드 예시는 페이지에서 “&amp;”로 씁니다.
악센트와 기호
디코딩은 흔한 다섯 가지뿐 아니라 세미콜론으로 끝나는 모든 이름 있는 엔티티를 이해합니다. “café à 5 € © 2026”은 “café à 5 € © 2026”이 되고, 줄바꿈 없는 공백은 진짜 줄바꿈 없는 공백이 됩니다.
숫자 엔티티
숫자 엔티티도 디코딩됩니다. “été”는 “été”가 되고, “😀”과 “😀”는 같은 이모지가 됩니다.
도구가 건드리지 않는 것
- “&inconnue;” 같은 알 수 없는 엔티티는 그대로 남습니다.
- 문장 속의 “&”나 “<”처럼 끝에 세미콜론이 없는 엔티티는 건드리지 않습니다.
- “https://exemple.fr/?a=1¶m=2©=4” 같은 매개변수가 있는 주소는 그대로 정확합니다. 여기서 “¶m”과 “©”는 엔티티로 취급되지 않습니다.
코드를 보여 주기 위해 인코딩하기
페이지에 코드 일부를 보여 주려면 한 번만 인코딩합니다. 텍스트 “<a href="x">l’été & plus</a>”는 “<a href="x">l'été & plus</a>”가 됩니다. 악센트가 있는 글자는 인코딩되지 않고, 예약된 다섯 문자만 인코딩됩니다.
문제 피하기
인코딩은 페이지에 쓰는 마지막 순간에 한 번만 합니다. 잘못된 인코딩의 잔재를 한꺼번에 바꾸려면 찾기 및 바꾸기가 알맞습니다. 웹 주소는 다른 인코딩을 따르며, Base64, 해시, 인코딩된 주소를 혼동하지 않기에서 설명합니다.
결과 확인하기
- 도구가 엔티티가 남았다고 알리는 동안은 디코딩을 다시 실행합니다.
- 화면의 원본 텍스트와 비교합니다.
- 줄바꿈 없는 공백과 이모지를 확인합니다.
