php 执行git系统命令问题

2017-11-23 22:17:00
wyd621
原创 0
在php通过exec等执行系统命令的方法,执行 git ls-tree HEAD命令,如果git中有中文,git会自动转义,将中文变成这样类似于asc码的东西。
 "\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt"
这是可以通过php执行git config core.quotepath false命令,就可以还原成中文。
这里有两个问题
1、Linux下,如果没有目录权限,执行git config core.quotepath false命令就不起作用,就不会还原成中文。需要修改权限才可以。
2、windows下,如果执行类似于“git log -1 -- 新建文本文档.txt”命令时,如果编码与操作系统不同,也会执行出错。例如:用php执行这个命令编辑是UTF-8,而windows系统编码是gbk,则需要把变命令同步编码转换函数转换才能正常执行 iconv('utf-8', 'gbk', "git log -1 -- 新建文本文档.txt");。
发表评论
评论通过审核后显示。