对于utf8和使用MySQL数据库的阿拉伯语而言,这可能看起来像是类似的问题,但是我搜索了结果并找不到..
我的数据库endocing设置为utf8_general_ci, 我的php分页默认编码为ansi 数据库中的阿拉伯语显示为:ãÌÑÈ
但是我改成了utf8, 如果我向数据库添加新输入,数据库中的阿拉伯语显示为:زين
我不在乎它如何显示indatabase,只要它在php页面中正常显示, 将php页面更改为utf8后,添加输入而不是重新输入,如果显示结果则应该如此 但在将页面编码转换为uft8 之前添加的旧数据显示如下:
我尝试了很多修复方法,比如在ssh和php中使用iconv
,utf8_decode()
utf8_encode()
..以及更多但没有效果。
所以我希望你能在这里找到解决方案吗?
更新:: 主要目标是通过从旧编码'windows-1256'中的php页面检索数据而不是从ssh更新它来解决的。
但还有一个问题::
我有一些插入为'windows-1256'的文本和其他插入为'utf-8'的文本所以现在windows编码转换为utf-8并且工作正常,但是原来的utf-8已被转换还有一些不可读的东西,在php中使用iconv,使用旧页面编码..
那么有没有办法检查原始编码是否为原始转换?
答案 0 :(得分:0)
在运行任何其他查询之前,尝试在创建数据库连接后运行查询set name utf8
。
如:
$dbh = new PDO('mysql:dbname='.DB_NAME.';host='.DB_HOST, DB_USER, DB_PASSWORD);
$dbh->exec('set names utf8');