我的 LAMP 堆栈存在编码问题。
网页头有:
我的 PDO dsn 是:mysql:host=localhost;dbname=$database;charset=utf8
选项数组是:
options = array (
// PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
);
我已经尝试过设置和不设置 PDO::MYSQL_ATTR_INIT_COMMAND; 无论哪种方式,我都会得到相同的结果。
我从我的数据库中检索类似的东西:
$sql = 'SELECT * FROM ...';
$prepared = $dbh->prepare($sql);
$prepared->execute()
while ($row = $prepared->fetch(PDO::FETCH_ASSOC)) {
...
}
没有绑定参数。
数据库、所有表和所有字符串(CHAR、VARCHAR、TEXT)列的排序规则是 utf8_unicode_ci。
如果我的数据库中有(例如)18”x24”(由 phpMyAdmin 插入),我在输入和 textarea 字段中得到 18”x24”,但在表单外回显时得到 18×24”。
如果我的数据库中有 18"x24",我在输入和文本区域字段中得到 18"x24",但在表单外回显时得到 18"x24"。
如何让 18”x24”(不是 18×24”,也不是 18×24”)同时显示内部和外部表单域?