2011-05-09 2 views
0

나는 라틴어 1 MySQL 데이터베이스에서 가져온 덴마크어 텍스트 묶음을 가지고 있으며, PHP에서 에코 될 때 올바르게 표시됩니다. 문제는 데이터베이스에서 가져온 것이 아닌 다른 덴마크 문자를 반향시킬 필요가있을 때 시작됩니다. 내가 무엇MySQL 데이터 정렬과 PHP 문자 집합 충돌

또한 비 쿼리 문자가 제대로뿐만 아니라 표시 할 수 있도록 헤더

Content-Type: text/html; charset=iso-8859-1 

실제로 출력됩니다.

문제는 쿼리 한 문자가 잘못 표시된다는 것입니다.

+0

대신 utf-8로 전환해야합니다. – Flask

답변

3

데이터가 라틴 -1 조합 테이블에 저장되었다고해서 그것이 라틴어 -1로 인코딩되었음을 의미하지는 않습니다. 이것은 연결 SET NAMES 설정이 데이터 정렬과 같을 때 MySQL이 문자 변환을하지 않기 때문입니다.

문제를 혼란스럽게하는 latin1 데이터베이스에 UTF8 문자가 저장되어있는 것으로 의심됩니다. 더 도움이 필요

당신의 세부 사항을 추가 할 수 있습니다하십시오

  • 당신의
  • 세부 사항을 설정 한 MySQL의 연결 인코딩 곳 "비 조회"문자는
+0

'SET NAMES' 대신 ['mysql_set_charset'] (http://php.net/mysql_set_charset)을 사용하십시오. – Gumbo

+0

글쎄, 기본 MySQL 어댑터를 사용한다면 작동 할 것이다. 몇 주 전에 작성한 블로그 게시물의 어댑터에 따라 다른 방법에 대한 세부 정보가 포함되었습니다. http://webmonkeyuk.wordpress.com/2011/04/23/how-to-avoid-character-encoding-problems- in-php / –

0

에서 오는 유니 코드를 사용하십시오. UTF-8 => 올바른 방법.

그래서 utf8_unicode_ci를 데이터베이스에, UTF-8을 페이지 charset으로 설정하고 쿼리 전에 mysql_query ("SET NAMES UTF8")를 설정하십시오.