我試圖將字符串從HTML-ENTITIES轉換爲UTF-8,然後將編碼後的字符串保存到我的數據庫中。 html實體是希臘字母,並且看起來像這樣:νω
將html實體轉換爲utf-8並將它們插入到mysql數據庫
現在我嘗試了數千種不同的方法,從使用utf8_encode或html_entity_decode開始,直到現在我遇到了函數mb_convert_encoding()。 現在真正奇怪的是,當轉換我的字符串,然後輸出它,它被正確編碼爲UTF-8,但是當插入這個字符串到我的數據庫時,我最終得到像這樣:ξÏνω
。
這是編碼代碼:
header('Content-Type: text/html; charset=utf-8');
mb_internal_encoding('utf-8');
......
while($arr = $select->fetch_array(MYSQLI_ASSOC))
{
$text = $arr["greek"];
$result = mb_convert_encoding($text, 'UTF-8', 'HTML-ENTITIES');
$mysqli->query("UPDATE some SET greek = '".$result."'");
}
當輸出我的查詢,然後手動做在phpMyAdmin SQL查詢它工作得很好,所以它似乎是我的分貝的問題。將編碼字符串傳輸到我的數據庫時必然會出現問題...
什麼charset是你的數據庫中的表?默認是latin1,你需要把它改成utf-8。這是你應該檢查的第一件事。 – Landon
數據庫設置爲utf-8。 – phpheini
你可以在調用query()函數之前回顯你的查詢嗎?它看起來在那裏嗎? – Landon