1)我有一個表tbl_Data
在數據庫中有name
列與文本比較方法(?)屬性設置爲utf8_polish_ci
。作爲一種魅力,當我通過phpMyAdmin瀏覽tbl_Data
。來自PHP的錯誤編碼?
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
,web服務器:nginx
與FPM如果revelant ...
你看到的[函數utf8_encode函數]在PHP手冊評論(http://php.net/manual/en/function.utf8-encode.php)?即:「如果你的文本已經在UTF-8中,你不需要這個功能」?如果你不使用'utf8_encode'函數會發生什麼? – Charlie
如果我根本不使用這個函數,那麼我從早期使用'utf8_encode()'的「ó」接收到了 。其餘缺失的字母仍然是「?」 –
maby這將幫助http://php.net/manual/en/function.htmlspecialchars.php – Ivo