我现在的主要问题是,我无法在我的网页上显示“ä,ü,ö”,显示为 ,当我用“回声”显示我的脚本时,它们看起来很正常,当我从我的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;
}
在我的数据库,他们仍然得到保存为“A,ö,ü”的表格。 表本身在utf8_bin。 我在HTML文件的头部尝试这样做:
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<html lang="de">
以及该文件中我用它来读取数据库。
header('Content-Type: text/html; charset=utf-8');
有了下面的代码我得到这样的输出:
foreach($menues as $r){
echo urlencode($r);
}
“Saisonfr%FCchte” 它应该是 “Saisonfrüchte”。
有没有一点我想念字符集或者做一些特别错误的事情?
谢谢!只需在连接文件中使用'array(PDO :: MYSQL_ATTR_INIT_COMMAND =>“SET NAMES utf8”)'完美! –
'PDO:$ db = new PDO('dblib:host = host; dbname = db; charset = UTF-8',$ user,$ pwd); ' –