2010-07-31 4 views
5

유니 코드로 작성된 일부 텍스트를 데이터베이스에 삽입하면 해당 문자가 물음표가됩니다. 데이터베이스 인코딩은 utf-8로 설정됩니다. 그 밖의 무엇이 잘못되었을 수 있습니까? phpmyadmin을 체크인 할 때 물음표 만 삽입됩니다!유니 코드 문자가 데이터베이스에 삽입 된 후 물음표가 됨

이것은 내가 데이터베이스에 연결하기 위해 사용하는 코드 :

define ("DB_HOST", "localhost"); // set database host 
define ("DB_USER", "root"); // set database user 
define ("DB_PASS","password"); // set database password 
define ("DB_NAME","name"); // set database name 

$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection."); 
$db = mysql_select_db(DB_NAME, $link) or die("Couldn't select database"); 

mysql_set_charset('utf8',$link); 
mysql_query("SET CHARACTER SET utf8"); 
+0

MySQL과 통신하는 데 사용하는 모듈은 무엇입니까? mysql, mysqli, pdo-mysql, ...? 데이터도 제대로 utf-8로 인코딩 되었습니까? 정확하게 문자를 물음표로 보는가? – VolkerK

+1

mysql_query ("SET NAMES 'utf8'");를 추가했습니다. mysql_select_db와 문제가 해결 된 후! –

+0

http://uk3.php.net/manual/en/function.mysql-set-charset.php –

답변

3

당신이 UTF-8도에서 인코딩 삽입 된 텍스트인가? 아니면 UTF-8이 아닌 PHP 파일입니까? MySQL 클라이언트 연결을 UTF-8로 설정 했습니까?

그렇지 않은 경우 문제가 발생한 것일 수 있습니다.

2

물음표가된다는 것을 어떻게 알 수 있습니까? PHP 페이지, 데이터베이스 필드 출력 또는 phpmyadmin과 같은 소프트웨어에서 물음표로 보입니까?

어느 쪽이든, 문제는 아마도 데이터베이스가 아닌 웹 페이지의 인코딩 일 것입니다. 단지 실행

header('Content-Type: text/html; charset=utf-8'); 
+0

을 확인하십시오. phpmyadmin 및 사이트에서도 물음표가 표시됩니다. –

+0

사용중인 글꼴은이 케이스를 해결하는 데 도움이되는 중요한 정보입니다. – stillstanding

+0

그루지야 유니 코드를 사용합니다. 글꼴 이름은 Sylfaen입니다. –

0
//first make sure your file produce utf-8 chars 
header('Content-Type: text/html; charset=utf-8'); 
//make sure with your spelling 
//write 
mysql_query("SET CHARSET utf8");  
//instead of 
mysql_query("SET CHARACTER SET utf8"); 

//for some reasons 
mysql_query("SET CHARSET SET utf8"); 
//works on some servers and for other servers not.i am not sure why? 

//try using mysql_set_charset("utf8"); only without mysql_query("SET CHARSET utf8"); 
//for me i had the same issue with my server 
//when i used mysql_set_charset("utf8"); only --> the problem solved 
//again make sure with your spelling and try again 
0

미안하지만 당신은 왕 줄리앙은 당신이 가진 모든 잘못 ... 내 친구입니다 : : 다음 줄을 추가해야합니다

mysql_query("SET CHARACTER SET utf8"); 
mysql_query("SET CHARSET utf8"); 
mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'"); //This statement does the job!!! ;) 

이 좋은 하루 되세요!

관련 문제