在将我的网站移动到新服务器时,发现了以下问题:来自 mysql 的“奇怪”字符(ê、ç、ã 等)的呈现被呈现错误。
例如:
MySQL: Galo vai a final, após cobranças de pênaltis。
旧服务器 (apache 2.2 /php 5.3): Galo vai a final, após cobranças de pênaltis。(正确的)
新服务器 (apache 2.4 /php 5.4): Galo vai a final, após cobranças de pênaltis。(错误的)
我相信是 apache 或 php 导致了这种情况,但我在任何地方都没有找到关于它的文档。
有人可以帮我找出这个错误的原因吗?
编辑
这是渲染它的代码(注意它在两个服务器中是相同的):
控制器:
//Noticias
$q = Doctrine_Query::create()
->select("id,titulo,thumb,conteudo")
->from('noticia')
->limit(10)
->where("data <= '$today'")
->andWhere("status = 1")
->andWhere("categoria_id = 1")
->orderby('data DESC');
$res = $q->fetchArray();
foreach($res as $key => $value){
$res[$key]['titulo'] = stripslashes($res[$key]['titulo']);
$res[$key]['conteudo'] = strip_tags($res[$key]['conteudo']);
$res[$key]['conteudo'] = stripslashes($res[$key]['conteudo']);
$res[$key]['conteudo'] = substr($res[$key]['conteudo'],0,150) . '...';
}
$smarty -> assign('noticias',$res);
看法:
<ul class="homelist">
{foreach item=noticia from=$noticias name=news}
<li> <a href="noticia/{$noticia.id}/{$noticia.titulo|slug}/"><img src="assets/images/noticias/{$noticia.thumb}" alt="" /></a> <a class="title" href="noticia/{$noticia.id}/{$noticia.titulo|slug}/">{$noticia.titulo}</a>
<p>{$noticia.conteudo}</p>
<a class="more" href="noticia/{$noticia.id}/{$noticia.titulo|slug}/">more</a>
</li>
{/foreach}
<li><p align="center"><a href="/noticias/1">Veja mais</a></p> </li>
</ul>