PHP 执行使用system等函数执行外部脚本,导致脚本中文乱码问题
有个功能通过脚本获取git的差异文件
#!/bin/bash
LOG=d:/pushCode/logs/git_dev_release_test_view.log
FILELOG=d:/pushCode/logs/git_file_view.log
echo "`date +%Y-%m-%d-%H:%M:%S` Begin update test code...$1..." >>$LOG
cd d:/wwwroot/intensiveView
git pull origin master >>$LOG
git diff HEAD^ --name-only >$FILELOG
echo "----------日志结束------------"
echo 1
exit 0
保存文件的记录文件git_file_vie.log,手工执行脚本时中文不会乱码,但是如果使用PHP的system等函数处理的情况下,中文会转码,不知道有没有大佬遇到过这种问题能够指点一下!
尝试过转UTF-8,但是转不成功。。。 下面是PHP的处理代码
$devSh='D:\pushCode\pull2.sh';
system($devSh);
$file_list=file_get_contents('d:/pushCode/logs/git_file_view.log');
$file_list = str_replace(array("\r\n", "\r", "\n"), " ", $file_list); //切割文本
$file_list = trim($file_list);//去除首尾空格!
$file_list = explode(' ',$file_list);
if (empty($file_list)){
echo 1;
return;
}
foreach ($file_list as $v){
Queue::push(PushView::class,$v,'pushView');//插入队列
}