我無法弄清楚我做錯了什麼。我從數據庫中獲取文件內容。當我回應內容時,當我將它寫入文件(.html)時,所有內容都顯示得很好。我已經嘗試過iconv和其他一些解決方案,但我不明白我應該爲第一個參數放置什麼,我嘗試過空格,而且這種方法也不能很好地工作。如果它正確回顯,我認爲它以UTF-8的形式出現。現在卡住了一會兒,沒有多少運氣。通過PHP的fwrite寫入UTF-8文件
function file($fileName, $content) {
if (!file_exists("out/".$fileName)) {
$file_handle = fopen(DOCROOT . "out/".$fileName, "wb") or die("can't open file");
fwrite($file_handle, iconv('UTF-8', 'UTF-8', $content));
fclose($file_handle);
return TRUE;
} else {
return FALSE;
}
}
html文件的來源看起來像。
出來的DB是這樣的:
<h5>Текущая стабильная версия CMS</h5>
進去文件中像這樣
<h5>Ð¢ÐµÐºÑƒÑ‰Ð°Ñ ÑÑ‚Ð°Ð±Ð¸Ð»ÑŒÐ½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ CMS</h5>
編輯:
原來,問題的根源是Apache的服務於文件不正確。添加
AddDefaultCharset utf-8
我的.htaccess文件修復了它。浪費時間......至少我學到了一些東西。
將您的輸出HTML放在某處。您可能沒有將UTF-8 標籤標頭添加到HTML中。 – Dean
@ Dean即使在看源代碼時也會這麼做嗎?
@Serhiy您可以在原始文章底部的評論中添加代碼嗎?評論代碼/爭奪是很難在最好的時間閱讀,歡呼 – Martin