php页面不显示阿拉伯语文本

时间:2011-08-29 20:25:50

标签: php character-encoding internationalization

我有一个PHP页面,我试图显示阿拉伯语文本但显示它。

在MySQL数据库中,我成功存储了阿拉伯语文本。

我正在使用以下代码连接到数据库:

function connect(){
$this->dbLink = mysql_connect($this->dbHost,$this->dbUser,$this->dbPass);   
if(!$this->dbLink) die("Could not connect to database. " . mysql_error());
mysql_select_db($this->dbName);
mysql_set_charset("utf8", $this->dbLink); 
}

在PHP页面中使用以下标题:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

但仍然没有成功。

感谢您的帮助。

6 个答案:

答案 0 :(得分:3)

您可以使用此元代码:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

请检查mysql列的字符类型..

查看this

答案 1 :(得分:3)

检查文件编码,它应该是UTF-8,您可以在查询文本之前尝试运行以下查询:

mysql_query("SET NAMES UTF8");

答案 2 :(得分:1)

添加到meta部分中设置的标头,检查php.ini中的default_charset设置。如果您自己设置内容类型标题或与内容类型元信息一致,则default_charset应为空。

答案 3 :(得分:1)

您设置了一个META标记,告诉浏览器使用ISO-8859-1(<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />),这是基于拉丁语的脚本,但肯定不是阿拉伯语。

还要确保所有地方都有UTF-8:

  • DB-column
  • 数据库连接(你已经拥有它)
  • 网站(通过HTTP-header OR META-tag,你不需要两者,你不需要第二个META标签,如上所述......)

答案 4 :(得分:0)

您是否尝试过将连接设置为使用UTF-8(使用mysql_set_charset)?

答案 5 :(得分:0)

尝试在Mysql连接后将这两行添加到php脚本

mysql_query("SET NAMES cp1256"); mysql_query("set character set cp1256");