这个问题是我见过一段时间最奇怪的事情。
我获得了UTF-8中的所有页面,在索引页面中添加了<meta>
charset="UTF-8"
,甚至header()
。
然后我得到了一个页面,我从一个数组的顶层菜单中添加了所有链接,因此在显示列表时它是可伸缩的。
$menu['services'] = "Services";
$submenu['services']['sendings'] = "International sendings";
/* And more like this */
显示链接:
foreach($service as $key => $value) {
if(isset($submenu[$key])) {
echo '<li><a href="">'.$value.'</a>
<ul>';
foreach($submenu as $keysub => $valuesub) {
echo '<li><a href="">'.$valuesub.'</a></li>';
}
echo '</ul></li>';
}
else {
echo '<li><a href="">'.$value.'</a></li>';
}
}
这会正确显示所有菜单,除了第一个子菜单(只是第一个)。
<li>
<a href="">Servicios</a>
<ul>
<li>
<a href="">Anternational sending</a>
</li>
<li>
<a href="">Parking service</a>
</li>
<!-- and others -->
</ul>
</a>
</li>
如您所见,有一个“A”而不是“I”。我尝试了其他的词,比如“Envíosinternacionales”(西班牙文),并输出“ nvíosinternacionales”。
我真的不知道为什么会这样做。
答案 0 :(得分:1)
确保使用没有BOM(字节顺序标记)的UTF-8保存所有PHP文件,您可以轻松检查当前设置的编码并使用免费软件notepad ++转换文件。有&#34;格式&#34;在主菜单中,您可以将当前打开的文件设置或转换为所需的编码。您还可以使用一些通用的十六进制编辑器检查字节顺序标记。
答案 1 :(得分:0)
即使您的页面是UTF8,请确保您的数据库表采用UTF8编码(如果提到的数据是从DB填充的)。您也可以尝试使用utf8_encode
或iconv
。
如果在页面中声明了一个或多个编码类型
,也可能发生这种情况