不同页面中的相同PHP脚本会更改字符

不同页面中的相同PHP脚本会更改字符,php,character-encoding,phpactiverecord,Php,Character Encoding,Phpactiverecord,我使用的是php activerecord,在应用程序的两个不同部分中,我从数据库中获得一个照片资产,如下所示: $p = Photo::find(12891); //I insert its caption to a log file for debugging purposes file_put_contents('log.txt',$p->caption); 在文本编辑器中检查的一个日志文件中,该文件将在60到60天内读取两个空格 在另一个日志中,该文件的读取时间将超过60†天,并

我使用的是php activerecord,在应用程序的两个不同部分中,我从数据库中获得一个照片资产,如下所示:

$p = Photo::find(12891);
//I insert its caption to a log file for debugging purposes
file_put_contents('log.txt',$p->caption);
在文本编辑器中检查的一个日志文件中,该文件将在60到60天内读取两个空格

在另一个日志中,该文件的读取时间将超过60†天,并用该交叉字符替换第二个空格

因此,字符编码似乎有些混乱,但我不知道如何或为什么,PHP配置在两个脚本运行的地方完全相同,它们使用完全相同的函数等等


**日志文件不是问题所在,基本上问题是如果您在一个脚本中从数据库中提取照片对象并重新保存它,即使没有修改,内容也会更改。如果你在另一个地方做,那没关系。日志文件只是为了说明问题

您是否检查了文件编码?两个日志文件都是从php文件内容生成的,其中一个文件的编码设置为UTF-8,另一个文件的编码设置为未知。事实上,日志文件不是问题,问题是下游发生了什么,因为这个字符问题,只是试图用日志文件来说明它,所以你登录到两个不同编码的文件,如果记录了不同的内容,你会感到惊讶吗?好的,现在看到你的编辑了。但是这两个脚本文件的文件编码是什么呢?php使用相同的配置生成了这两个文件……为什么它选择使它们采用不同的编码?在生成日志文件之前,出现了一些问题