簡體   English   中英

希臘字符無法正確顯示到數據庫/從數據庫正確顯示-html,php,mysqli

[英]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編碼的。 您應該創建一個批處理腳本;

  1. 從表中選擇所有數據
  2. 使用mb_convert_encoding將其轉換為utf-8
  3. 和更新的舊數據

修復您的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM