문제

나는 사용 중입니다 HTML 정화기 내 PHP 프로젝트에서 사용자 입력으로 제대로 작동하는 데 어려움이 있습니다.

Wysiwyg 편집기를 사용하여 사용자가 HTML에 입력하도록합니다 (tinymce), 그러나 사용자가 HTML 엔티티에 들어갈 때마다   (비 파괴 공간)이 이상한 외국 문자로 데이터베이스에 저장됩니다 (Â).

그러나 Wysiwyg 편집기를 사용하여 저장된 항목을 편집 할 때 제대로 표시됩니다.  . 또한 표시 될 때 제대로 작동합니다. 소스 코드에서만 실제 공간으로 나타나지 만 비 깨지지 않는 공간 문자는 아닙니다.

또한 MySQL 데이터베이스에서는 이상한 외국 문자로 표시됩니다.

나는 문서를 읽었다 유니 코드 및 HTML 정화기 데이터베이스와 웹 페이지 인코딩을 UTF-8으로 변경했지만 여전히 깨지지 않는 공간 문자가 엉망이되지 않는 문제가 있습니다. 다른 HTML 엔티티와 같은 &lt; 그리고 &gt;, 그대로 저장하십시오 < 그리고 >, 그러나 왜 그렇지 않습니까? &nbsp;?

도움이 되었습니까?

해결책

비 위성 공간은 데이터베이스에 하나의 이상한 외국 특성으로 저장되지 않습니다. 캐릭터. 유니 코드 비 중개 공간 문자는 UTF-8로 인코딩됩니다. 0xC2 0xA0, ISO-8859-1에서 "Â"처럼 보입니다 (즉, 이상한 외국 특성과 비 분해 공간이 뒤 따릅니다).

당신은 아마도 잊고있을 것입니다 SET NAMES 'utf8' 데이터베이스 연결에서 PHP가 데이터를 ISO-8859-1 (기본값)로 MySQL로 전송합니다.

"보자"UTF-8 끝까지…"PHP 및 MySQL을 사용할 때 UTF-8을 올바르게 설정하는 방법을 확인하십시오.

다른 팁

또한 그것을 아는 데 도움이 될 수 있습니다 &#160; 대안입니다 &nbsp; 사람이 읽을 수있는 XML을 출력하면 필요한 것일 수 있습니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top