我正在将数据从Oracle数据库导入MySQL表。
我已将MySQL表格字符集设置为utf8_general_ci
,并将字段列值设置为utf-8
的数据库和表格名称。
现在,当我获取结果时,它会打印出来,就像? sign
:
مرحبا العال� - 5
我在列中的utf值为مرØبا العالÙ
当我将此字符串与Oracle字符串进行比较时,它显示正确的值 - Oracle数据库的精确副本,并在那里显示阿拉伯语中的完美字符串。
我已经用utf-8设置了我的html元素
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
如果我按如下方式设置mysql查询,则会显示垃圾字符:
mysql_query("SET NAMES utf8;");
mysql_query("SET CHARACTER_SET utf8;");
跟踪堆栈和其他网站上发现的所有内容,但仍然出现错误。
请帮忙!
答案 0 :(得分:6)
您是否在没有BOM的情况下保存了php文件?如果没有,试试吧。 Potential issues with the UTF-8 BOM
进一步尝试使用'utf-8&#39;使用单引号而不使用SET CHARACTER_SET
mysql_query("SET NAMES 'utf8'");
并在html文档标题中使用charset utf-8:
header("content-type: text/html; charset=utf-8");
答案 1 :(得分:0)
使用pdo你应该有这个
$_dbhandler = new PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8"));