我为PHP的旧版本做过:
<?php require_once('Connections/SQLConn.php');
mysql_query("SET NAMES 'utf8'"); ?>
现在我想更新这个过时的代码,以便更新到PHP 5.6,我尝试了htmlenties(),htmlspecialchar(),通过mysqli进行更改,但它不起作用。
典型的黑色菱形示例
我的本地数据库由latin_swedish_ci整理,因为我的网站已经为西班牙语和英语做好了准备,我数据库的每一个表都由utf8_Spanish_ci整理(如果你需要的话)。
请勿使用mysql_*
API。切换到PDO或mysqli_*
。后一种说法是$conn->charset('utf8');
黑色菱形通常是由引起的
- 客户端中文本的编码是拉丁1
- (正在讨论的)联系是拉丁的1
- 表列可以是latin1或utf8(两者都有相同的效果)
- HTML代码显示
<meta ... charset=UTF-8>
您需要一直使用latin1,在这种情况下,meta中的字符集需要是ISO-8859-1
。或者一直到外面去。
西班牙语在拉丁语1和utf8中的效果"一样"好。但如果你去西欧东部,拉丁语1就不够了。
既然你一直在捣乱,请检查一下桌子里有什么。如果CHARACTER SET latin1
,则ñ
应为十六进制F1
;如果utf8,则为C3B1
。如果您在latin1表中看到C3B1,则说明您有另一个问题。