2013-07-28 2 views
-1

그냥 간단한 질문입니다. UTF-8을 MySQL 데이터베이스와 HTML 파일 모두에서 표준으로 사용하고 있습니다. 이해할 수없는 한 가지 이유는 문자 내가 입력했을 때와 다른 방식으로 SQL에 표시됩니다. UTF-8을 사용할 때 필자가 쓰는 것과 똑같은 방식으로 배치되어야한다고 확신합니다.UTF-8 문자를 UTF-8 데이터베이스로 직접 구문 분석

게시 된 모든 데이터를 자동으로 UTF-8로 유지 한 다음 그대로 게시하는 클래스 또는 무언가가 있습니까?

+0

질문에 대답을 편집하지 마십시오. 아래의 해답과 상관없이 문제를 해결했거나 여러 답을 사용하지 않은 경우에는 주로 자신의 답을 쓰고 동의하십시오. – Joe

+0

답변과 링크를 제공해 주셔서 감사합니다. 유익하고 많은 것을 배웠지 만, 심각하게도이 제목은 내 문제가 무엇인지 설명하지 않습니다. 분명히 검색 할 수있는 것이 아닙니다. 어떻게 대답을 알았습니까? 하지만 어쨌든 고마워 .. – Anders

답변

0

또한 텍스트 편집기는 문자 인코딩에 영향을 미칩니다. 문자 인코딩을 UTF-8로 설정할 수있는 텍스트 편집기 또는 IDE를 사용해야합니다.

+0

텍스트 편집기? Dreamweaver를 사용하고 있습니다. – Anders

+0

다음은 Dreamweaver의 문자 인코딩에 대한 링크입니다. http://www.adobe.com/support/documentation/en/dreamweaver/mx2004/dwusing_errata/dwusing_errata2.html. 그리고 더 많은 정보 : http://superuser.com/questions/46693/dreamweaver-reverts-to-western-encoding-after-its-been-changed-to-utf8 –

+0

안녕하세요 .. 당신 대답에 감사드립니다 .. 나는 PDO 연결', array (PDO :: MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")'뒤에이 줄을 추가하는 것이 필요했습니다. 이후 모든게 잘 됐어 .. – Anders

0

시도해보십시오. 1. succes 2.metod가 아닌 경우 방법. 마지막 방법은 메모장 2 편집기로 HTML 파일을 열고 파일 메뉴에서 UTF8로 인코딩을 변경하고 저장하는 것입니다. 나는 그것이 해결책이 될 것이라고 생각한다.

 

    $dsn = $config ["driver"] . ':dbname=' . $config ['dbname'] . ';host=' . $config ['host']; 
     . ';charset=UTF-8'; //---> this is the solution 
     try { 
      $this->link = new PDO ($dsn, $config ['user'], $config ['pass']); 
      // The mysql driver ignores the charset directive in $dsn (yeah, that sucks) 
      if ($config ["driver"] == 'mysql') 
       $this->link->exec ("set names utf8"); 
     } 
     catch (PDOException $e) { 
      die ("Hata var : " . $e->getMessage()); 
     } 

기타 방법 :

 

$encodings = array("windows-1254","utf-8", "iso-8859-9"); 
$data = file_get_contents($TempSrc); 
$data=mb_convert_encoding($data, 'UTF-8', mb_detect_encoding($data, $encodings)); 

0

MY SOLUTION 경우 사람의 경험과 유사한 문제는, 광산은 PDO 연결 , array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'") 후이 줄을 추가함으로써 해결되었다.

지금 연결 문자열은 다음과 같습니다

$conn = new PDO('mysql:host=localhost;dbname=$dbname', $username, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));

관련 문제