2009-09-03 2 views
0

: default_charset = "UTF-8"PHP 및 MySQL에서 utf-8 인코딩 문제가 발생 했습니까? 이것은 내가 php.ini 파일을 수정하여, 지금까지 뭘하려

이 MySQL을 구성 방법입니다 :

mysql> show variables like '%char%'; 
+--------------------------+-----------------------------------------------+ 
| Variable_name   | Value           | 
+--------------------------+-----------------------------------------------+ 
| character_set_client  | utf8           | 
| character_set_connection | utf8           | 
| character_set_database | utf8           | 
| character_set_filesystem | binary          | 
| character_set_results | utf8           | 
| character_set_server  | utf8           | 
| character_set_system  | utf8           | 
| character_sets_dir  | f:\wamp\bin\mysql\mysql5.0.45\share\charsets\ | 
+--------------------------+-----------------------------------------------+ 
8 rows in set (0.00 sec) 

그러나이 작동하지 않습니다.

데이터를 버렸습니다. PHP로 처리하기 전후에 utf-8 형식입니다.

그러나

데이터는 데이터베이스에 삽입 한 후이 같은되었다

이 (phpMyAdmin을 통해) 큰 혼란이된다

, PHP로 MySQL의에 삽입 후 :

æ ± 너희

더 나쁜 것은 MySQL에서 데이터를 읽고 페이지에 표시 한 후 데이터가 다시 정상적으로됩니다. !

누군가 진짜 문제가 무엇인지 지적 해 줄 수 있습니까?

$dml = "insert into profiles(accountId,name,thumbnail,sex,homeAddr,livingAddr,peoples,married,politicalStatus,qq,mobilePhone,telephone,homePage) 
      value($accountId,'{$_POST['name']}',{$_POST['thumbnail']},{$_POST['sex']},'{$_POST['homeAddr']}','{$_POST['livingAddr']}','{$_POST['peoples']}',{$_POST['married']},'{$_POST['politicalStatus']}',{$_POST['qq']},{$_POST['mobilePhone']},{$_POST['telephone']},{$_POST['homePage']})"; 
mysql_query($dml,$con); 
+0

phpMyAdmin이 올바른 문자 집합을 사용하도록 구성 되었습니까? – shadowhand

답변

0

이 문제에 대한 구체적 사항 :

코드는 같은 모든 것들입니다. 문제를 일으키는 코드를 게시하고 어떻게 작동하지 않는지에 대해 말하십시오. 코드가 없으면 문제를 해결할 수 없습니다.

그렇다면 phpMyAdmin 문자셋이 적절하게 설정되어 있는지 확인하십시오. I 당신은 phpMyAdmin에서 잘못 보인다고 말하고 있는데,이 경우에는 문제가있는 곳이 될 가능성이 있습니다.

편집 : "더 나쁜 것은 무엇입니까? MySQL에서 읽고 페이지에서 보여주는 후 데이터가 다시 정상적으로됩니다!" 방법.

다른 답변에 대한 귀하의 의견은 실제로 아무것도 증명하지 않습니다. phpMyAdmin에서 올바르게 보였다고해서 데이터베이스에있는 것과 일치한다는 것을 의미하지는 않습니다. 귀하의 PHP 문자 집합은 귀하의 데이터베이스 문자 집합이 귀하의 phpMyAdmin 문자 집합과 일치해야합니다 일치해야합니다. 그들 중 어떤 것이 잘못 되었다면, 당신은이 문제를 정확하게 얻을 것입니다. 그들 중 하나가 일치하지 않습니다!

+0

phpMyAdmin이 실제로 적합합니다. – omg

+0

여기에 코드를 붙여 넣었습니다. – omg

+1

붙여 넣은 코드에 사용중인 연결 매개 변수가 표시되지 않습니다. php가 UTF-8을 사용하여 데이터베이스에 연결하고 있는지 확인하십시오. –

1

phpMyAdmin에서 php config의 연결 매개 변수를 확인하십시오. 데이터베이스에 연결할 때 연결의 인코딩을 지정할 수 있습니다 (다른 모든 장소와 마찬가지로). 동기화가되지 않아 문제가 발생할 수 있습니다.

+0

phpMyAdmin 내의 php config의 연결 매개 변수는 정상이어야하며 utf-8 형식의 데이터로 테이블을 업데이트 할 수 있습니다. – omg

+0

내 업데이트를 참조하십시오. 코드는 일부 dml을 넘지 않습니다. – omg

0

HTTP 콘텐츠 유형이 utf-8인지 확인하십시오. 그건 손질하기가 까다 롭습니다.