我正在使用exec和SVN日志命令在我们公司的内部网页上从SVN获取一些信息。根据要求,网页是ISO-8859-1,但SVN-server / exec outpu是UTF8,特殊字符是十进制编码而不是“普通”编码。
这使得我无法使用UTF8_decode或类似功能,而且我无法确切地了解返回的格式,否则str_replace将作为一种解决方法时刻。例如,据我所知,ä由?\ 195?\ 164表示,但我无法在输出中找到并替换该字符串,所以可能还有其他一些事情我正在丢失
我的SVN服务器是CentOS,网络服务器是Debian运行Apache,如果罪魁祸首可以在哪里
伪代码
exec('svn log PATH' , $output);
foreach ($output as data){
$data = str_replace(array('?\195?\165', '?\195?\182'), array('å','ö'), $data);
echo $data . '<br>';
}
foreach ($output as data){
$data = utf8_decode($data);
echo $data . '<br>';
}
foreach ($output as data){
$data = mb_convert_encoding($data, 'ISO-8859-1', 'UTF-8');
echo $data . '<br>';
}
示例字符串echoed是“Buggfix f?\ 195?\ 182r 7.1.34”,但应该是“Buggfixför7.1.34”