- 論壇徽章:
- 0
|
最近一個項目,我用PHP調(diào)用svn,做一些comit, add, updte等操作,
函數(shù)很簡單,就是一個exec
比如提交一個文件:svn_api.php
$cmd = "/usr/bin/svn ci Tulips5.jpg -m 'add file' --config-dir /home/svnroot/.subversion 2>&1";
$re = exec($cmd, $out_put, $ret);
var_dump($out_put);
但是如果有包含中文字符的文件的時候,而且是通過crontab啟動的時候,就會有下面的報錯出現(xiàn):
array(3) {
[0]=>
string(60) "svn: Error converting entry in directory '302/2849' to UTF-8"
[1]=>
string(5 "svn: Can't convert string from native encoding to 'UTF-8':"
[2]=>
string(72) "svn: 302/2849/?\232?\143?\138?\232?\138?\1773.jpg"
}
但是如果在SecureCRT終端直接執(zhí)行
/opt/lampp/bin/php svn_api.php
這樣執(zhí)行就沒有問題。
沒有思路,不知道該怎么去解決,網(wǎng)上查的,大部分都是說字符編碼的問題,設(shè)置一下LC_ALL, LC_LANG之類就可以解決,但是像如果靠crond服務(wù)啟動的,無終端的情況,就不知道要怎么設(shè)置這個字符編碼,試過調(diào)用PHP的setlocale(LC_ALL, "en_US.utf-8" ;還有直接$r = exec('export LC_ALL="en_US.UTF-8"', $out, $ret); 貌似都還是不行。
有知道的大蝦請告訴一下。 |
|