我的一个字段(这是一个latin1_swedish_ci)似乎在该字段内的PHPMYADMIN中显示欧元符号正常。
但是,当我尝试在表单中的网站输入字段中回显它时,它会在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 http-equiv="Content-Type" content="text/html; charset=UTF-8" />
我尝试过将utf8_general_ci用于该字段,但结果相同。
答案 0 :(得分:6)
尝试使用htmlentities()
代替htmlspecialchars()
。
特殊字符不会转换所有内容,只需几个选择字符。欧元符号€,需要真正编码,€
。
答案 1 :(得分:4)
如果您以UTF-8的形式提供页面,则需要确保在将数据库放入页面之前以UTF-8编码从数据库中获取字符串。您可以使用以下方式执行此操作:
mysql_set_charset('utf8');
(如果你这样做,将你的实际表数据存储在UTF-8中也是有意义的,例如utf8_general_ci
,而不是latin1_swedish_ci
,这样你就可以正确处理外面的字符基本的拉丁语-1集。)
答案 2 :(得分:0)
尝试将MySQL charset更改为UTF-8或瑞典语。
Here这是一个小例子。