2016-03-29 82 views
-1

我已經做到了對PHP舊版本:如何在PHP 5.6中正確設置字符集爲UTF-8?

<?php require_once('Connections/SQLConn.php'); 
mysql_query("SET NAMES 'utf8'"); ?> 

現在我想以更新到PHP 5.6更新這個過時的代碼,以及我試圖與ヶ輛(),用htmlspecialchars(),由mysqli的變化,它不起作用。

example of typical black rhombus

我的本地數據庫是由latin1_swedish_ci整理,因爲我的網站已經準備好英語和西班牙語的語言,我的數據庫的每一個表由utf8_spanish_ci整理(如果有必要讓你知道它)。

+2

* latin1_swedish_ci,因爲我的網站已準備好用於西班牙語和英語語言* ...並且這似乎符合您的要求,而不是說utf8_general_ci(特別是因爲您隨後將每個表單獨設置爲utf8)? – CD001

+2

[UTF-8通過所有方式]可能的重複(http://stackoverflow.com/questions/279170/utf-8-all-the-way-through) – CD001

+0

@ CD001我剛剛設置每個表單獨到latin1_swedish_ci仍然是同樣的問題。 – danibeam

回答

0

不是使用mysql_* API。切換到PDO或mysqli_*。在後者的陳述是$conn->charset('utf8');

黑色菱形通常由

  • 在客戶機的文字編碼引起的是LATIN1
  • 的連接(如所討論)是LATIN1
  • 表柱可以是LATIN1或UTF8(或者具有相同的效果)
  • 的HTML代碼表示<meta ... charset=UTF-8>

您需要一直走latin1,在這種情況下,meta中的charset需要爲ISO-8859-1。或者一路走utf8。

西班牙語在「拉丁文1」中的作用與'utf8'一樣。但是,如果你去西歐東部,latin1將是不夠的。

既然你已經搞亂了,請檢查一下表中的內容。 ñ應該是十六進制F1 if CHARACTER SET latin1C3B1 if utf8。如果您在拉丁文表格中看到C3B1,則會出現另一個問題。

+0

感謝您的建議,裏克。我會盡量一路去用utf8。 – danibeam

相關問題