2013-12-22 142 views
4

我正在将数据从Oracle数据库导入到MySQL表中。阿拉伯语文本输出php mysql utf-8转换问题

我已经将我的MySQL表格字符集设置为utf8_general_ci,并且数据库和表名称的字段列值也设置为utf-8

现在,当我获取的结果,它打印一样,这与? sign

مرحبا العال� - 5 

我在列我UTF值为مرحبا العالÙ

当我比较这串与Oracle的字符串,它显示了正确的值 - Oracle数据库的精确副本,并且它显示了完美的阿拉伯字符串。

我已经把我的HTML元使用UTF-8以及

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

如果我设置MySQL查询如下,它显示垃圾字符:

mysql_query("SET NAMES utf8;"); 
mysql_query("SET CHARACTER_SET utf8;"); 

其次千方百计找到了堆栈和其他网站,并仍然出现错误。

请帮忙!

+0

请粘贴原始字符,并与您想要显示的等效阿拉伯字符粘贴! – ProllyGeek

+0

@ProllyGeek utf chars:Ù...Ø±ØØ¨Ø§Ø§Ù“عأÙ...原始文本:مرحباالعالم,而我的页面输出文本:مرحباالعال –

+0

什么是字符集中的数据oracle数据库。 – Musa

回答

6

您是否保存了没有BOM的php文件?如果没有,尝试一下。 Potential issues with the UTF-8 BOM


与 'UTF-8' 使用单引号和不SET CHARACTER_SET

mysql_query("SET NAMES 'utf8'"); 

并用字符集UTF-8在html文档头部还尝试:

header("content-type: text/html; charset=utf-8"); 
0

与pdo你应该有这个

$_dbhandler = new PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8"));