如何在PHP中显示UTF-8字符串中的正确字符?

时间:2011-12-29 22:08:43

标签: php encoding utf-8

我有原始文字:ferhat göçer,我希望将其显示为ferhat göçer。我尝试过很多东西,但都没有。

所有页面都有以下标题和元数据:

header('content-type: text/html; charset=utf-8');
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

我尝试过使用iconvutf8_deconde以及其他所有功能但仍然没有运气。

如何为这些奇怪的字符显示正确的符号?我在数据库中有这些数据。

2 个答案:

答案 0 :(得分:1)

它可能也与服务器有关。一些提供商将其apache2配置为强制ISO-XXXX编码,无论您通过PHP或页面的<header>设置什么。

编辑:您可以通过检查pageload为您提供的实际标头来验证这一点。使用浏览器工具,例如Inspect - &gt; Chrome,Firebug中的网络面板或http://www.webconfs.com/http-header-check.php

等网站

答案 1 :(得分:1)

utf8_decode通常会做你想要的,因为你的字符串的内容是UTF-8编码的两次:

var_dump(utf8_decode('ferhat göçer'));

see example。)但是,这假设如下:

  1. 您的文件以UTF-8格式保存。
  2. 您的标头正确投放。 (检查浏览器中的HTML / HTTP标头。)
  3. 您的PHP内部编码/默认字符集设置为UTF-8。
  4. 另外,请记住,在对数据库进行任何INSERT / UPDATE之前,以下内容将防止问题重新出现:

    mysql_query("SET NAMES 'utf8'");