websvn的中文乱码问题的解决
来源:互联网 发布:eureka 集群 nginx 编辑:程序博客网 时间:2024/06/06 08:23
websvn是subversion的一个php编写的web界面,但使用中发现该程序对svn中的中文目录、注释显示不正常,原有的中文目录显示成了/?/230/?/153/?/88样子的乱码。
由于处于安全考虑,这个系统中对php做了open_dir的限制,所以没有使用apt来安装websvn,而是从websvn.tigris.org下载了1.6.1的版本,最新的2.0的版本和系统默认的svn1.4.2不兼容没法使用。
经过跟踪调试,发现websvn是通过php的popen函数来调用svn命令并读取返回值,但是这个返回的内容本身就是乱码的。再进一步测试,发现popen函数的环境变量中LANG设置为C,这样执行的svn命令,中文信息就变成了/?/230/?/153/类的乱码了。
知道了问题所在,修改起来就很容易了:
先修改下config.inc文件中的编码设置
$config->setInputEncoding("utf-8");
$config->setOutputEncoding("utf-8");
在修改下command.inc中的函数
function quoteCommand($cmd, $redirecterr)
{
global $config;
if ($redirecterr)
$cmd .= " 2>&1";
// On Windows machines, the whole line needs quotes round it so that it's
// passed to cmd.exe correctly
if ($config->serverIsWindows)
$cmd = "/"$cmd/"";
return "export LANG=zh_CN.UTF-8 && " . $cmd;
}
经过这样简单修改,并清除了cache中的缓存,在刷新显示,嗯,一切正常了。
调试环境是debian4.0 subversion 1.4.2 websvn1.6.1 apache2.2.3 php5.2
由于处于安全考虑,这个系统中对php做了open_dir的限制,所以没有使用apt来安装websvn,而是从websvn.tigris.org下载了1.6.1的版本,最新的2.0的版本和系统默认的svn1.4.2不兼容没法使用。
经过跟踪调试,发现websvn是通过php的popen函数来调用svn命令并读取返回值,但是这个返回的内容本身就是乱码的。再进一步测试,发现popen函数的环境变量中LANG设置为C,这样执行的svn命令,中文信息就变成了/?/230/?/153/类的乱码了。
知道了问题所在,修改起来就很容易了:
先修改下config.inc文件中的编码设置
$config->setInputEncoding("utf-8");
$config->setOutputEncoding("utf-8");
在修改下command.inc中的函数
function quoteCommand($cmd, $redirecterr)
{
global $config;
if ($redirecterr)
$cmd .= " 2>&1";
// On Windows machines, the whole line needs quotes round it so that it's
// passed to cmd.exe correctly
if ($config->serverIsWindows)
$cmd = "/"$cmd/"";
return "export LANG=zh_CN.UTF-8 && " . $cmd;
}
经过这样简单修改,并清除了cache中的缓存,在刷新显示,嗯,一切正常了。
调试环境是debian4.0 subversion 1.4.2 websvn1.6.1 apache2.2.3 php5.2
- websvn的中文乱码问题的解决
- 中文乱码问题的解决
- 中文乱码问题的解决
- Websvn的安装
- JSP中文乱码问题的解决
- JSP中文乱码问题的解决.
- 如何解决J2ME中文的乱码问题
- JSP中文乱码问题的解决
- JSP中文乱码问题的解决
- JSP中文乱码问题的解决
- JBuilder X 中文乱码问题的解决
- 如何解决J2ME中文的乱码问题
- MySQL-front解决中文乱码的问题
- JSP/Servlet中文乱码问题的解决
- servlet中中文乱码问题的解决
- 解决中文乱码问题的超值方法
- 解决Commons FileUpload的中文乱码问题
- 解决jspsmartupload上传下载的中文乱码问题
- 实现层面
- Wince开发之桌面快捷方式
- 运行时隐藏(不显示)程序窗口(VC)
- bmp文件操作
- asp列出服务器变量
- websvn的中文乱码问题的解决
- Yacc使用 收集
- sql server 中创建视图时使其条件生效.
- C# 控件制作
- C#面向对象设计模式纵横谈 学习笔记8 Bridge桥接(结构型模式)
- (转)成功历程:程序员在35岁之前成功十二条法则
- 无盘工作站建立全攻略
- 在效率和可靠性之间挣扎
- 如何通过类型库使 C DLL 更易于通过 VB 进行访问