2013-06-01 1 views
0
  • 난에 메타 문자 집합을 설정 한 UTF-8 내가 BOM없이 UTF-8로 내 메모장 + + 인코딩을 설정 한Accute 악센트 MySQL은 - PHP - UTF-8

    <meta charset="utf-8" /> 
    
  • 내 MySql의 데이터베이스 데이터 정렬을 ut8_general_ci로 설정했습니다.

  • 각 필드의 데이터 정렬을 utf8_general_ci로 설정했습니다.

나는이 모든 작업을 수행했지만 여전히 액센트 악센트 (é)를 볼 수 없습니다. 그 대신에 see을 보았습니다. 호프 퓨리 (Hopefuly) 고맙습니다!

+1

당신은'SET NAMES utf8' 또는 더 나은, 클라이언트에 해당 (예를 들어 MySQL은 (내가) _set_charset)를 수행 했습니까? – julp

답변

0

은 (PDO를 사용하여) 데이터베이스에

예를 SET NAMES utf8을 실행하십시오 :

$pdo = new PDO('mysql:host=127.0.0.1;dbname=mydb', 'root', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); 
+0

와우,이 작품은 ...하지만 왜? –

+0

그것은 데이터를 반환해야하는 charset의 데이터베이스를 알려줍니다 (UTF-8은 기본값이 아닙니다) – Martin

+0

그렇다면 데이터 정렬은 무엇입니까? –

0

도 설정 데이터베이스 연결의 캐릭터 세트. 이 매개 변수를 설정하면 데이터베이스 오브젝트에 UTF-8로 인 코드 된 문자열이 전달됩니다 (데이터베이스에 저장되어 있더라도). 물론 UTF-8 형식으로 데이터를 저장하면 더 빨리 전달할 수 있습니다.

// tells the mysqli connection to deliver UTF-8 encoded strings. 
$db = new mysqli($dbHost, $dbUser, $dbPassword, $dbName); 
$db->set_charset('utf8'); 

// tells the pdo connection to deliver UTF-8 encoded strings. 
$dsn = "mysql:host=$dbHost;dbname=$dbName;charset=utf8"; 
$db = new PDO($dsn, $dbUser, $dbPassword); 

// tells the mysql connection to deliver UTF-8 encoded strings. 
$db = mysql_connect($dbHost, $dbUser, $dbPassword); 
mysql_set_charset('utf8', $db); 

more…