dokuwiki win7环境 新建页面本地文件名 乱码 URI编码 转中文 解决方案

针对DokuWiki在Windows 7环境下新建页面出现的本地文件名乱码和URI编码问题,通过在dokuwiki.php中设置$conf['fnencode']为'gb2312',并修改pageutils.php中的utf8_encodeFN和utf8_decodeFN两个函数,添加对GBK编码的转换,成功解决了页面文件名显示为中文的问题。更新配置后,重启容器,本地存储的页面文件夹名称恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dokuwidi版本号:$updateVersion = "49.5";   来自 doku.php

[不保证其他版本的也使用同样方法解决,但大体思路应该相同]

  1. dokuwiki.php 中配置 $conf['fnencode']    = 'gb2312'; 
  2. pageutils.php 中修改两个函数(蓝色为添加的部分):
  3. function utf8_encodeFN($file,$safe=true){
        global $conf;
        if($conf['fnencode'] == 'utf-8') return $file;

        if($safe && preg_match('#^[a-zA-Z0-9/_\-\.%]+$#',$file)){
            return $file;
        }

        if($conf['fnencode'] == 'safe'){
            return SafeFN::encode($file);
        }

        #添加if判断开始
        if ($conf['fnencode']=='gb2312'){
            return iconv('UTF-8','GB2312',$file);
        }
        # if判断结束

        $file = urlencode($file);
        $file = str_replace('%2F','/',$file);
        return $file;
    }

function utf8_decodeFN($file){
    global $conf;
    if($conf['fnencode'] == 'utf-8') return $file;

    if($conf['fnencode'] == 'safe'){
        return SafeFN::decode($file);
    }
    
    #添加该 if判断开始
    if ($conf['fnencode']=='gb2312'){
        return iconv('GB2312','UTF-8',$file);
    }
    #if判断结束

    return urldecode($file);
}

 

然后就ok啦。重启容器,即可看到新增页面之后,本地存储的文件夹名称变成中文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值