【发布时间】:2012-12-13 09:33:51
【问题描述】:
1) 我在数据库中有一个表tbl_Data,其中有一个name 列,其中文本比较方法(?) 属性设置为utf8_polish_ci。当我通过 phpMyAdmin 浏览 tbl_Data 时,它就像一个魅力。
2) 在我的 html 代码中:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
看来我正在为浏览器发送正确的编码标头...
3) 我的 PDO dsn 包含;charset=UTF-8,后面是 php 手册。
4) 在我使用的 php 代码中:
foreach(parent::query('SELECT ID,PLName,LatinName from tbl_Data') as $row) {
$result = $result."
<tr>
<td>".utf8_encode($row['PLName'])."</td>
</tr>
";
}
拥有所有这些后,我仍然得到“垃圾”(=?) 字符而不是正确的波兰字母,尽管其中一些显示良好(phpMyAdmin 显示正确)。我在这里缺少什么?请各位大侠指教!
我的 MySQL 引擎是 InnoDB,网络服务器:nginx 带有 fpm,如果它是相关的...
【问题讨论】:
-
你看到utf8_encode function的php手册上的评论了吗?即:“如果你的文本已经是UTF-8,你不需要这个功能”?如果不使用
utf8_encode函数会怎样? -
如果我根本不使用此功能,那么我会收到来自“ó”的�,这在之前使用
utf8_encode()时是正确的。其余丢失的字母仍然是“?” -
你使用的是什么 PHP 版本?
-
此时 PHP 5.4.10
标签: php html encoding utf-8 pdo