2011-09-30 4 views
2

가능한 중복으로 작성 E : 우리는 특수 문자가 변형되는 건너 한
PHP messing with HTML Charset EncodingPHP 및 MySQL을 - ë

.

이 문제의 원인은 무엇입니까? 어떻게 해결할 수 있을까요? 예를 들어

:

ë becomes ë 

감사합니다.

+0

어디서 이런 일이 발생합니까? PHP 구문 분석 또는 데이터가 DB에 제출되면? – Prisoner

+2

복제, 예를 들어 http://stackoverflow.com/questions/7522956/strange-character-in-fresh-wamp-installation 및 http://stackoverflow.com/questions/7501924/php-messing과 같이 많은 시간을 요청했습니다. -with-html-charset-encoding – Fabio

+0

은 실제 UTF8 문자입니다. ë는 예상 utf8 문자입니다. 이 유용한 링크를 참조하십시오 : http://www.i18nqa.com/debug/utf8-debug.html – Julian

답변

5

는 UTF-8 문자 그게 전부 당신은

0

당신이 HTML document와 PHP header의 기능을 당신의 캐릭터 세트를 설정되어 있는지 확인 PHP에서 utf8_encode()와 utf8_decode()를 통해 분석 할 수 있습니다.

또한, MySQL은 첫 번째 쿼리가 SET NAMES=UTF8 (SET NAMES utf8 in MySQL?)

2

캐릭터 세트가 많은 장소에서 설정할 수 있습니다 될 수 있도록 시도 할 수 있습니다.

  • 테이블의 캐릭터 세트
  • 필드의 캐릭터 세트

당신이 사방에 UTF-8을 사용하는지 확인 PHP-MySQL의 연결 캐릭터 세트

  • 아파치의 디폴트 캐릭터 세트
  • 와 HTML의 메타 정보 및 연결을 올바르게 설정하는 것을 잊지 마십시오 전에 첫 번째 쿼리 :

    mysql_query("SET NAMES 'utf8'"); 
    
  • 0

    이것이 PHP 스크립트의 출력이라면 mb_internal_encoding() 기능을 고려해보십시오.

    또는 HTML 인코딩 메타 태그로 해결할 수 있습니다. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> ~ <head>...</head> 안에 있습니다.

    +0

    웹 서버 또는 PHP 스크립트가 보낸 charset HTTP 헤더가 html 메타 태그보다 우선 순위가 높습니다. – erenon

    +0

    그러나 일부 브라우저의 경우이 해결책이 될 것입니다. –