【发布时间】:2013-11-11 10:24:17
【问题描述】:
我有一个波兰语电子商务网站,产品类别存储在数据库中(波兰语)
由于某些原因,特殊的外来字符没有显示,而只显示在网站的某些部分。
像 ł、ą、ó 等字符。
问题是它们完美地显示在类别页面的主体中,但它们也显示在页面的左侧作为替代导航,而正是这个左侧导航,它们没有正确显示......他们显示为?或
我已经检查了数据库中的表,它存储为 utf8_general_ci
我已经检查了页面中包含的“left-nav.php”文件,它是用UTF8编码的。
我什至检查了类别页面文件,即使它在主体中正确显示字符,并且它也是以UTF8保存的。
我的网站标题中有这行代码
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
我使用 HeidiSQL 来管理我的数据库,并且它们已正确存储在数据库中
我错过了什么吗?我该怎么做才能解决这个问题?
为什么像这样的特殊字符会在某些地方正确显示,而在其他地方却不能?
这是左侧导航顶部类别的代码
<?php
$sql = mysqli_query($con, "SELECT * FROM RAE_categories_pl WHERE categoryID = '".$category."'");
$result = mysqli_fetch_array($sql);?>
<div class="liSelect"><img src="images/arrowdown_off.gif" style="padding:0px; margin:0px -10px 0 0;float:right;"><a class="select" href="<?php echo "http://" . $_SERVER['HTTP_HOST']?>/products/<?php echo $result['categoryID'];?>"><?php echo $result['categoryName'];?></a></div>
<?php
$sql2 = mysqli_query($con, "SELECT RAE_sub_categories_pl.categoryName AS subCatName, RAE_sub_categories_pl.categoryID AS subCatID FROM RAE_sub_categories_pl INNER JOIN RAE_products_pl ON RAE_products_pl.subCategory = RAE_sub_categories_pl.categoryID AND RAE_products_pl.active = 1 WHERE RAE_sub_categories_pl.parentCatID = '$category' GROUP BY RAE_sub_categories_pl.categoryID");
while ($result2 = mysqli_fetch_array($sql2))
{?>
<div class="liul">
<div class="ulli">
<a href="<?php echo "http://" . $_SERVER['HTTP_HOST'] . "/equipment/" . $category . "/" . $result2['subCatID'];?>"><?php echo $result2['subCatName']?></a>
</div>
</div>
【问题讨论】:
-
尝试在脚本顶部添加
ini_set('default_charset', 'UTF-8'); -
无法说,为什么字符坏了,等你给我们看php代码,负责数据库交互
-
好的,我修改了我的问题
-
@Kevlar 检查连接 MySQL 的代码,并确保在连接后调用
$con->set_charset("utf8")。 -
@user4035 谢谢你确实解决了我的问题 :) 接受了你的回答