我的一个字段(这是一个latin1_swedish_ci)似乎在字段内的PHPMYADMIN中显示了欧元符号fine。
然而,当我试图在我的网站的输入字段中以表单的形式回显它时,它在firefox中显示为问号。
下面是html/php:
$sql = mysql_query("select * from `settings`");
while ($row = mysql_fetch_assoc($sql))
$setting[$row['field']] = htmlspecialchars($row['value'], ENT_QUOTES);
<input type="text" name="currency_symbol" id="currency_symbol" size="50" value="<?php echo $setting['currency_symbol']; ?>" />我在页面上使用了下面的meta标签:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我尝试过对字段使用utf8_general_ci,但我得到了相同的结果。
发布于 2011-07-25 08:04:53
尝试使用htmlentities()而不是htmlspecialchars()。
特殊字符不会转换所有字符,只会转换一些选定的字符。欧元符号Euro,真的需要编码,€。
发布于 2011-07-25 08:15:20
如果将页面作为UTF-8提供服务,则需要确保在将字符串放到页面之前,以UTF-8编码从数据库中抓取该字符串。您可以使用以下命令来完成此操作:
mysql_set_charset('utf8');(如果这样做,也可以将实际的表格数据存储为UTF-8格式,例如utf8_general_ci,而不是latin1_swedish_ci,这样您就可以正确地处理基本拉丁-1集以外的字符。)
发布于 2011-07-25 08:12:46
尝试将MySQL charset更改为UTF-8或瑞典语。
Here这是一个小例子。
https://stackoverflow.com/questions/6810587
复制相似问题