只是一個簡單的問題..我在我的MySQL數據庫和HTML文件中都使用UTF-8作爲標準..我不明白的一件事是爲什麼一封信在SQL中顯示的方式與我輸入時不同。我相信在使用UTF-8時,它應該與我寫的完全相同。直接解析UTF-8字符到UTF-8數據庫
是否有一個類或東西,自動保持所有發佈的數據在UTF-8,然後張貼它,因爲它?
只是一個簡單的問題..我在我的MySQL數據庫和HTML文件中都使用UTF-8作爲標準..我不明白的一件事是爲什麼一封信在SQL中顯示的方式與我輸入時不同。我相信在使用UTF-8時,它應該與我寫的完全相同。直接解析UTF-8字符到UTF-8數據庫
是否有一個類或東西,自動保持所有發佈的數據在UTF-8,然後張貼它,因爲它?
您的文本編輯器對您的字符編碼也有影響。確保使用文本編輯器或IDE,您可以將字符編碼設置爲UTF-8。
文本編輯器?我正在使用Dreamweaver,如果多數民衆贊成你指的是.. – Anders
這裏是一個鏈接關於字符編碼在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 –
嘿..謝謝你的回答..事情我需要在我的PDO連接',數組(PDO :: MYSQL_ATTR_INIT_COMMAND =>「SET NAMES'utf8'」)'後添加這一行。以後一切都很順利.. – Anders
試試這個1.方法if if not succes 2.metod。最後一種方法我說用notepad2編輯器打開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));
我的解決方案 如果有人遇到類似的問題,我的是由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'"));
請不要編輯答案進入正題。如果您已經獨立於下面的答案解決了問題,或者使用了多個不同的答案(主要不是特定答案),請編寫自己的答案並接受答案。 – Joe
感謝您的答案和鏈接。這是信息豐富的,我從中學到了很多東西,但是嚴重的是,標題並沒有描述我的任何問題,這顯然不會使我尋找的東西。我應該怎麼知道這是答案?但無論如何.. – Anders