我现在的主要问题是我无法在网页上显示“ä,ü,ö”,显示为。当我用“ echo”显示脚本时,它们看起来很正常,当我运行包含在html中的脚本时我得到页面。
在尝试了几项有关该主题的内容后,我找不到解决该问题的方法。
我正在用.xls读取.xls文件到php阅读器。我从这样的字段中获取数据:
function getMenueMonday($connection) {
$menu = "";
$startrow = 8;
$endrow = 16;
$col1 = 3;
for ($i = $startrow; $i < $endrow; $i++) {
$menu .= $connection->sheets[0]["cells"][$i][$col1] . "<br>";
}
return $menu; }
运行得很好。然后,我将所有这些返回值保存在数组中。我循环通过它们以将它们保存到mysql数据库中。
for ($i = 0; $i < 5; $i++) {
insertMenue(changeAttr($menues[$i]), $days[$i]);
}
我用来更改字母的方法如下:
function changeAttr($content) {
$search = array("ä", "ö", "ü", "ß", "Ä", "Ö", "Ü");
$replace = array("ä", "ö", "ü", "ss", "Ä", "Ö", "Ü");
$contentrep = str_replace($search, $replace, $content);
return $contentrep;
}
在我的数据库表中,它们仍然保存为“ä,ö,ü”。该表本身位于utf8_bin中。我在html文件的标题中尝试了此操作:
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<html lang="de">
以及我用来读取db的文件中的内容。
header('Content-Type: text/html; charset=utf-8');
通过以下代码,我得到以下输出:
foreach($menues as $r){
echo urlencode($r);
}
“ Saisonfr%FCchte”,应为“Saisonfrüchte”。
我是否有想念字符集或做某些特别错误的地方?
您的连接也必须知道所使用的编码,否则将进行一些隐式字符集转换。为此,您可以执行以下操作:
SET NAMES utf8
有关使用MySQL和PHP时常见编码错误的分步说明,请参阅此博客文章。
如果每个人都在说utf-8,则无需使用命名实体引用来转义HTML中的字符。它甚至可能被认为是不良做法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句