2016-03-29 33 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

相关问题