wangbin
  • wangbin
  • 2019-01-08
  • IT

dokuwiki:解决中文乱码问题

一. 简介

记录下dokuwiki中文乱码问题的解决方法.

二.官方教程

https://www.dokuwiki.org/zh:pagename

先奉上官方教程

三.解决

这里用的是解决中文文件名乱码问题UTF-8格式.

conf/local.php

// 文件最后添加
$conf['fnencode'] = 'utf-8';

inc/pageutils.php

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);
    }

    // 删除下面两行
    - $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);
    }

    // 删除下面一行
     - return urldecode($file);
    // 加上下面这行
    + return $file;
}

四. 结尾

使用解决中文文件名乱码问题GBK格式,会将文件改为GBK格式,数据使用svn管理的情况下,会有问题,好像特殊兼容可以解决,但也是麻烦.

使用UTF-8格式就没有这个问题了.

参考:

  1. https://www.dokuwiki.org/zh:pagename