DokuWiki 儲存中文檔名會變成亂碼的處理方式

DokuWiki 儲存中文檔名會變成亂碼的處理方式

要做的事情就是把兩行程式碼 Mark 起來,讓我們來看一下吧!

  1. 首先登入 DokuWiki 安裝目錄 「/inc」 底下
  2. 使用文本編輯器打開 「inc/pageutils.php」
  3. 搜索 utf8_encodeFN,找到後將該函數中如下兩行註釋。

以下這兩行程式碼:

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

將這兩行程式碼 Mark 起來(在前面加上兩條/ /),結果會如下:

// $file = urlencode($file);
//$file = str_replace('%2F','/',$file);`
  1. 搜索 utf8_decodeFN, 找到後將該函數中的此行註釋。

以下這行程式碼:

return urldecode($file);

將這行程式碼 Mark 起來(在前面加上兩條/ /),結果會如下:

// return urldecode($file);

註釋後,添加如下一句

return $file;

修改完成後保存退出,就大功告成了!。重新查看命名空間時,即可顯示中文文章。從此,DokuWiki 存出來的都會是正確的中文字,即使用了「資料夾:標籤」,存出來的「資料夾」也都會是中文喔~

※ 總體檔名長度受系統限制,Windows下最大字元數為255字元(含完整路徑符號)。
※ DokuWiki 檔名不能有英文大寫字元,特殊符號在存檔時會被編譯為 _ 後存檔。
※ 檔案名稱含有中文時,中文字數限制為最多11個字,不含英文字元。每個中文字元在 UTF-8 編碼中佔用用2~4字元組不等,即使檔案名稱仍在允許範圍,中文字組在儲存時會被裁切,中文後面即使仍有字元,也無法儲存完整字串,即使使用重新命名方式可變更完整檔名,但無法讀取檔案內容,
例如:DokuWiki_儲存中文檔名會變成亂碼的處理方式2019.txt 存檔後會變成 DokuWiki儲存中文檔名會變成亂碼.txt
如果修改檔名,讀取該鏈結也會顯示無該文件內容。目前還沒找處理方法,所以應避免中文檔名超過此限制,儘量使用英文全小寫字元存檔。


參考文件:
https://alrin0000.blogspot.com/2015/05/dokuwiki.html
https://www.twblogs.net/a/5b8ea6142b7177188346afa1
https://www.dokuwiki.org/zh-tw:pagename