2013-09-28 3 views
0

최근에 메타 문자에 관한 이상한 문제가 발생했습니다.Charset 오류, PHP smarty mysql

내 머리글에 charset을 설정하지 않으면 é, è, à ..와 같은 악센트가 내 데이터베이스의 텍스트를 제외한 모든 텍스트가 정확하게 표시됩니다 (PHP의 var도 포함). 마름모꼴. 나는 그 중 하나를 설정하면

내 헤더 내 데이터베이스에서

<meta http-equiv="Content-Type" content="text/html" charset="iso-8859-15" /> 
<meta charset="UTF-8"> 

텍스트 괜찮에 캐릭터 세트 (나는 그들 모두를 시도했다)하지만, 나머지는 모두 작은 물음표 대신에 악센트를 보여줍니다.

데이터베이스 문자 집합은 UTF-8 유니 코드이고 데이터 정렬은 UTF_8 일반 문자입니다.

나는 smarty를 사용하고있다. 그러나 나는 그의 디폴트가 UTF-8이기 때문에 설정에서 charset을 변경하지 않았다.

+0

같은 setConnection 방법에 캐릭터 세트 = UTF8을 추가, 해결책을 발견 . HTML의 메타 태그는 브라우저가 웹 사이트의 문자 세트를 결정할 수있는 유일한 소스입니다. HTTP 헤더는 다른 헤더입니다. –

+0

당신이 말하는 문자가 잘못된 UTF-8 문자를 나타냅니다. – tadman

답변

1

가 좋아 난 당신의 서버에 전송하고, 당신은 HTTP 문자 집합 헤더를 추가 시겠어요 내가 ORM을 사용하고, 나는 단지이

$config->set_connections(array(
    'development' => 'mysql://user:[email protected]/mydb;charset=utf8') 
);