[英]greek characters not appearing correctly to/from database - html, php, mysqli
我的數據庫具有排序規則utf8-general-ci
[我也嘗試了greek-general-ci
,但結果較差]。
當我直接通過phpMyAdmin插入帶有希臘值的行時,它在我的html頁面上顯示為:'??????'。
當我通過html表單插入一行時,該行正確顯示在html-outcome頁面上,但是在phpMyAdmin上,它看起來像這樣:“α-β-β”。
我可以解決這個問題,因為我只是在大學項目中這樣做,所以我可以通過html表單插入所有行,但是我很好奇為什么會這樣。
在我的html文件上,我有<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
並且當我有header('Content-Type: text/html; charset=utf-8');
在我的php文件上,它嚴重弄亂了我的頁面,因此我不能包含它。 還嘗試包括$mysqli->set_charset("utf8");
但只會出現錯誤。
我還檢查了希臘字符編碼在HTML中的工作原理,但在PHP中卻沒有,但是我們沒有同樣的問題。 但是,我應該更改httpd.conf文件嗎?
首先檢查表的排序規則。 它沒有鏈接到數據庫排序規則。 您的表排序規則也應為utf8-general-ci。
<? header('Content-Type: text/html; charset=utf-8');
$mysqli->set_charset("utf8"); ?>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
當所有這四個設置都激活時; 您應該能夠成功插入,更新或讀取UTF-8插入數據
我的猜測是您的問題發生了,因為您的舊數據不是utf-8編碼的。 您應該創建一個批處理腳本;
mb_convert_encoding
將其轉換為utf-8 修復您的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.