我試過: file_put_contents($ file_name,utf8_encode($ data)); 但是,當我檢查文件編碼從外殼與Linux命令:'file file_name' 我得到:'file_name:ASCII文本'如何在PHP中將ASCII編碼的字符串轉換爲UTF8?
這是否意味着utf8_encoding沒有工作?如果是這樣,從ASCII轉換爲UTF8的正確方法是什麼
我試過: file_put_contents($ file_name,utf8_encode($ data)); 但是,當我檢查文件編碼從外殼與Linux命令:'file file_name' 我得到:'file_name:ASCII文本'如何在PHP中將ASCII編碼的字符串轉換爲UTF8?
這是否意味着utf8_encoding沒有工作?如果是這樣,從ASCII轉換爲UTF8的正確方法是什麼
如果你的字符串不包含任何非ASCII字符,那麼你可能不會看到差異,因爲UTF-8向後兼容ASCII。嘗試寫作,例如,文本「1000さくら」,看看會發生什麼。
請注意,utf8_encode僅將編碼爲 ISO-8859-1的字符串轉換爲UTF-8。更合適的名稱是 「iso88591_to_utf8」。如果你的文本沒有在ISO-8859-1中編碼,那麼你不需要這個功能 。如果你的文本已經是UTF-8,你不需要 需要這個功能。實際上,將這個函數應用於未在ISO-8859-1中編碼的文本 將很可能簡單地篡改文本。
如果您需要將文本從任何編碼轉換爲任何其他編碼,請改爲使用iconv()。
試試這個:
$data = mb_convert_encoding($data, 'UTF-8', 'ASCII');
file_put_contents ($file_name, $data);
或使用該選項可以更改文件編碼:
$fd = fopen($file, 'r');
stream_filter_append($fd, 'convert.iconv.UTF-8/ASCII');
stream_copy_to_stream($fd, fopen($output, 'w'));
+1,即得。使用'file'工具將UTF-8中僅ASCII字符檢測爲ASCII。 – 2011-07-26 13:58:41
我的字符串包含日文字符 –