2010-12-01 5 views
1

데이터베이스에서 HTML 콘텐츠를 출력 할 때 일부 인코딩 된 문자는 브라우저에 의해 올바르게 해석되고 다른 문자는 그렇지 않습니다.HTML 문자 인코딩

예를 들어 %20은 공백이되지만, %AE은 등록 상표 심볼이되지 않습니다.

콘텐츠 인코딩 지정자가 없습니다.

(참고 : I 입력 에디터의 생성 마크 업을 제어 할 수 없기 때문에 내가 현실적으로, 예를 들어, ®을의 내용을 변경할 수 없음)

+2

음,'%의 AE'가 유효한 HTML 이스케이프 시퀀스가 ​​아닙니다. 어떤 텍스트를 사전 처리하는 소프트웨어입니까? 어떤 문자 집합을 사용합니까? – cdhowie

+3

'% 20'과'% AE'은 HTML 인코딩이 아닌 URL 인코딩입니다. – Quentin

답변

2

%AE는 HTML 안전 ASCII 유효하지 않습니다, 당신은 볼 수 있습니다 여기 테이블 : http://www.ascii.cl/htmlcodes.htm

중간에 번역을하지 않는 한 Windows Word 인코딩 (windows-1252 등)을 사용하면 실제로 HTML로 변환되지 않습니다.

0

어떤 서버 측 언어를 사용하고 있습니까? URL 디코드 기능을 확인하십시오.

+0

나는 당신 모두가 정확하다고 믿습니다. 당신의 도움에 감사드립니다. –

+0

URL 디코드가 필요했지만 문제를 일으키는 페이지에 실수로 가 있습니다. –

0

PHP를 사용하는 경우 urldecode()을 사용할 수 있지만 + 문자는주의해야합니다.

2

바이트 AE은 등록 상표의 표현 인 ISO-8859-1입니다. 아무 것도 보이지 않으면 URL 디코더가 다른 문자 세트를 사용하여 URL 디코딩합니다. 예를 들어 UTF-8에서이 바이트는 유효한 문자를 나타내지 않습니다.

이 문제를 해결하려면 ISO-8859-1을 사용하여 URL을 디코딩하거나 기존 데이터를 UTF-8을 사용하여 URL 인코딩되도록 변환해야합니다.

그렇습니다. HTML(XML) encoding®URL encoding%AE과 혼동해서는 안됩니다.

2

'% 20'인코딩은 URL 인코딩입니다. HTML을 표시하는 것이 아니라 URL에만 유용합니다.

HTML 페이지에 reg 문자를 표시하려면 HTML 엔티티를 사용하거나 페이지를 UTF-8로 전송하는 두 가지 옵션이 있습니다.

엔티티 코드를 사용하기로 결정하면 숫자 엔티티를 사용할 수 있기 때문에 en-masse로 변환하는 것이 매우 간단합니다. 명명 된 엔티티를 사용할 필요가 없습니다. &#reg;이 아닌 ®을 사용하십시오.

당신은 모든 문자에 대해 엔티티 코드를 알고 싶다면

는,이 치트 시트가 매우 도움 : http://www.evotech.net/blog/2007/04/named-html-entities-in-numeric-order/