【发布时间】:2012-06-22 08:27:06
【问题描述】:
我有读取远程文件内容并将其写入本地服务器的脚本。文件包含字符:ąčęėįšųūž。数据插入本地文件后,UTF-8 编码丢失。 我的脚本代码:
<?php
$data = file_get_contents('remote_file_address');
echo $data; //encoding is ok
$file = dirname(__FILE__) . '/../downloads/data.csv';
file_put_contents($file,$data); //invalid encoding in data.csv file
?>
我也按照这个帖子(How to write file in UTF-8 format?)的说明进行操作,但还是不行。
那有什么问题呢?有什么想法吗?
【问题讨论】:
-
在 php.net 上有很多关于这个的 cmets。 php.net/manual/de/function.file-put-contents.php 。您是否尝试过像
file_put_contents($myFile, utf8_encode($myContent));这样重新编码数据或像file_put_contents($myFile, "\xEF\xBB\xBF".$myContent);这样设置 BOM? -
如果它无效,当你执行
echo file_get_contents(dirname(__FILE__) . '/../downloads/data.csv');时应该会看到问题。是这样吗? -
@sofl,是的,这些方法我都试过了。
-
@Bounce 你是怎么确定编码错误的?
-
@Bounce:你怎么知道编码失效了?顺便说一句,编码是什么?
标签: php