2013-07-28 28 views
-1

只是一個簡單的問題..我在我的MySQL數據庫和HTML文件中都使用UTF-8作爲標準..我不明白的一件事是爲什麼一封信在SQL中顯示的方式與我輸入時不同。我相信在使用UTF-8時,它應該與我寫的完全相同。直接解析UTF-8字符到UTF-8數據庫

是否有一個類或東西,自動保持所有發佈的數據在UTF-8,然後張貼它,因爲它?

+0

請不要編輯答案進入正題。如果您已經獨立於下面的答案解決了問題,或者使用了多個不同的答案(主要不是特定答案),請編寫自己的答案並接受答案。 – Joe

+0

感謝您的答案和鏈接。這是信息豐富的,我從中學到了很多東西,但是嚴重的是,標題並沒有描述我的任何問題,這顯然不會使我尋找的東西。我應該怎麼知道這是答案?但無論如何.. – Anders

回答

0

您的文本編輯器對您的字符編碼也有影響。確保使用文本編輯器或IDE,您可以將字符編碼設置爲UTF-8。

+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連接',數組(PDO :: MYSQL_ATTR_INIT_COMMAND =>「SET NAMES'utf8'」)'後添加這一行。以後一切都很順利.. – Anders

0

試試這個1.方法if if not succes 2.metod。最後一種方法我說用notepad2編輯器打開HTML文件,並將文件菜單中的編碼更改爲UTF8並保存。我認爲這將是解決方案;

  1. 方法
 

    $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

我的解決方案 如果有人遇到類似的問題,我的是由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'"));