这可能看起来像 utf8 和阿拉伯语与 MySQL 数据库的类似问题,但我搜索结果并没有找到..
我的数据库编码设置为 utf8_general_ci , 我让我的 php 分页默认编码为 ansi 数据库中的阿拉伯语显示为:ãÌÑÈ
但是我把它改成了utf8, 如果我向数据库添加新输入,数据库中的阿拉伯语显示为:زين
我不关心它如何在数据库中显示,只要它在 php 页面中正常显示即可,
将 php 页面更改为 utf8 后,添加输入而不是检索输入时,是否显示应有的结果。
但是 在将页面编码转换为 uft8 之前添加的旧数据 显示如下:������
我尝试了很多方法来解决这个问题,比如在 ssh 和 php 中使用 iconv
,utf8_decode()
utf8_encode()
.. 和更多但没有工作。
所以我希望您能在这里为我提供解决方案?
update:: 主要目标是通过从旧编码“windows-1256”的 php 页面检索数据而不是从 ssh 更新它来解决。
但还有一个问题::
我有一些文本作为“windows-1256”插入,其他文本作为“utf-8”插入,所以现在 windows 编码已转换为 utf-8 并且工作正常,但原始的 utf-8 已转换以及一些不可读的东西,在 php 中使用 iconv,使用旧的页面编码..
那么有没有办法检查原始编码是什么以便转换或不转换?
最佳答案
尝试在创建数据库连接后运行查询 set name utf8
,然后再运行任何其他查询。
如:
$dbh = new PDO('mysql:dbname='.DB_NAME.';host='.DB_HOST, DB_USER, DB_PASSWORD);
$dbh->exec('set names utf8');
关于php - 阿拉伯语的 mysql 和 UTF8 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21618787/