2012-11-29 2 views
0

mysql에 "ñ/Ñ"문자가있는 단어가 있습니다. 하지만 인쇄 할 때 물음표가있는 다이아몬드로 바뀌 었습니다. 이것은 지금까지 수행했지만 작동하지 않았습니다.PHP PDO의 echo/Ñ

<meta charset="utf-8"> 
mysql:host=localhost;dbname=dbnameko;charset=UTF-8 
Collation : latin_sedish to utf8_general_ci 

Google로 검색하여 이미 stackoverflow 스레드를 검색했지만 답변이 올바르지 않습니다.

+0

당신은 또한 당신의 데이터베이스 사용을 UTF-8 ('SET NAMES 'utf8'') –

+0

에 대한 연결을해야하거나 mysql_query ([YOUR QUERY])를 호출하기 전에 mysql_query ("set names utf-8")를 호출하기 전에 데이터베이스를 변경할 수있는 권한을 얻으십시오. –

+0

감사합니다. – arjay0601

답변

0

우리는 1991 년 이래로 유니 코드를 가지고 있기 때문에 그러한 문제가 여전히 우리 작업을 방해하는 것은 오히려 유감 스럽습니다. 불행히도 기본값은 때로는 i18n에서 모두 잘못되어 있으므로 우리는 스스로 일을해야합니다 ...

HTTP에 관한 한 올바른 일을했지만 MySQL 연결에는 올바른 일을해야합니다. ..

이 시도 :

$result = mysql_query("SET NAMES utf8; SET CHARACTER SET utf8;"); 
    $cmd = "select * from yourtable"; 
    $result = mysql_query($cmd); //all should data should arrive correctly encoded 

각 연결에 당신이 .CNF 파일을 변경할 수 있습니다 할 필요 방지하기 위해. SO 다음과 같은 질문에 허용 대답에서 참조하시기 바랍니다 : Change MySQL default character set to UTF-8 in my.cnf?


UPDATE를 : 그것은 문제가 SQL 연결 문자열로 참이라고 밝혀졌습니다. 그러나 Apache AddDefaultCharset에서도 문제가 발생할 수 있으므로이 부분을 답으로 남겨 둡니다.

AddDefaultCharset은 그것이 무엇을하는지 이해하지 못하면 역 겹게됩니다! 이것이 설정되면, 아파치는 text/html과 text/plain content type의 응답을위한 charset을 설정합니다. 이것은 당신이 무시된다는 것을 의미합니다. Sacx의 recomments로 utf-8로 설정하거나 off로 설정하십시오. (부수적으로 특정 charset이 아니라 "on"으로 설정된 경우 "iso-8859-1"로 설정된 경우와 동일하게되므로 디버깅이 훨씬 더 어려워집니다!) 자세한 정보 : http://httpd.apache.org/docs/2.2/mod/core.html


은 참조 : How to make MySQL handle UTF-8 properly

0

웹 서버가이 문자 집합에 대해 알고하지 않습니다. 당신이하지 않은 경우 아파치를 사용하는 경우 것은, 구성 파일에서이 줄을 추가하거나 htaccess로

AddDefaultCharset utf-8 
관련 문제