从 mysql 中选择时,PHP 字符串未转换为 utf 8

标签 php mysql encoding utf-8 collate

我有以下脚本:

header('Content-type: text/plain; charset=utf-8');

$rq = "SELECT `name` FROM `mapamond_countries` WHERE `id` = 93";
$str = $db->GetAll($rq);

var_dump($str[0]['name']);
var_dump("شيلى");

字符串 شيلى 是从数据库 (phpmyadmin) 复制粘贴的。

第一个 var_dump: string(25) "بلجيكا"

第二个 var_dump: string(8) "شيلى"

任何人都可以解释为什么会出现这种差异以及如何解决它吗?数据库整理、表整理和列整理是 utf8_unicode_ci。

最佳答案

尝试:

1- 运行此查询 ALTER DATABASE mydatabasename charset=utf8;

2-在你做任何查询之前使用SET NAMES utf8

3-在创建新表时使用DEFAULT CHARSET=utf8

改变表格

ALTER TABLE `tableName` CHARACTER SET utf8;

关于从 mysql 中选择时,PHP 字符串未转换为 utf 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28721403/

相关文章:

c# - 检测字节数组C#的编码

java - SAX 解析器无法识别 windows-1255 编码

php - 什么条件处理没有 MySQL 记录与 SQL 语句匹配的事件?

php - PHP 中的表单未在 <li> 下发布值

php - 仅在一页上动态调整 div 大小?

php - 以两页形式 PHP 覆盖 session 数据

javascript - 在此ajax表单中将加载图标放在哪里请有人告诉我吗?

php - 在 PHP 中使用日期函数输出用户友好的日期

php - 单击清除按钮后使用多查询功能修改表

java - 将字节数组解码为 Base64 时出错,其中包含 '-' 和 '_' 等字符