zh-tw:pagename
差異處
這裏顯示兩個版本的差異處。
兩邊的前次修訂版前次修改 下次修改 | 前次修改 | ||
zh-tw:pagename [2009-06-16 10:19] – 124.9.197.82 | zh-tw:pagename [2015-01-21 01:44] (目前版本) – 還原成舊版 (2013-01-06 19:55) ach | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== | + | ====== |
- | Pagenames簡單的來說就是wiki中頁面的名稱.在Dokuwiki實際的檔案架構中,Pagenames就是會是那個頁面資料檔的檔案名稱. | + | 簡單來說,頁面名稱(Pagename)就是wiki中那些頁面的名字。在DokuWiki實際的檔案架構中,頁面名稱就是會是那個頁面資料檔的檔案名稱。 |
- | 在[[DokuWiki]]中,Pagenames只可以使用英文字母,數字,以及'' | + | 在[[DokuWiki]]中,頁面名稱只可以使用英文字母、數字、以及'' |
- | 至於冒號":" | + | |
- | 如果您使用中文命名, | + | 至於冒號":" |
- | \\ | + | |
- | \\ | + | |
- | \\ | + | |
- | 你可以看到完整的Pagename在wiki中任何一頁上方.像是你現在應該看到的是'' | + | |
- | 當你使用[[InterWiki]]的方法連結至其他的Wiki, | + | 如果您使用中文(或中日韓字符)命名,它會被轉換成貌似亂碼的字符串,但其實那是特別的代碼。其它非英語系字母,通常會被轉換,像是" |
- | 即使Admin在 [[config]] | + | 在wiki中任何一頁上方,你可以看到完整的頁面名稱。例如你現在應該看到的是'' |
- | \\ | + | |
- | \\ | + | 當你使用[[InterWiki]]的方法連結至其他的wiki,那命名就必須符合那些wiki所訂定的規則。 |
- | \\ | + | |
- | \\ | + | |
- | ====== 關於中文頁面名稱亂碼的解決方法 | + | 即使Admin在 [[config]] |
+ | ====== 關於中文頁面名稱亂碼的解決方法(一) ====== | ||
===== 伺服器環境 ===== | ===== 伺服器環境 ===== | ||
* windows XP Profession SP2 | * windows XP Profession SP2 | ||
行 28: | 行 22: | ||
* PHP加載了mb_string模塊 | * PHP加載了mb_string模塊 | ||
===== 解決辦法 ===== | ===== 解決辦法 ===== | ||
- | 這是一個不成熟的辦法,在分別測試了PmWiki與DokuWiki後,覺得DokuWiki很不錯。 | + | 這是一個不成熟的辦法,在分別測試了PmWiki與DokuWiki後,覺得DokuWiki很不錯。特別是它的存儲文本文件,直接打開也是清晰可讀的。比較遺憾的是,文件名是亂碼((其實不是亂碼,是進行了urlencode編碼,我們看不懂而已。))。為了解決這個問題,對\inc\<del>utf8.php</ |
- | 特別是它的存儲文本文件,直接打開也是清晰可讀的。 | + | |
- | + | ||
- | 比較遺憾的是,文件名是亂碼((其實不是亂碼,是進行了urlencode編碼,我們看不懂而已)),為了解決這個問題, | + | |
- | 對\inc\utf8.php做以下就可以了,經過初步測試沒有問題: | + | |
* 修改對文件名進行編碼、解碼的兩個函數:utf8_encodeFN、utf8_decodeFN | * 修改對文件名進行編碼、解碼的兩個函數:utf8_encodeFN、utf8_decodeFN | ||
行 62: | 行 52: | ||
} | } | ||
</ | </ | ||
+ | 以下是我的修改 | ||
+ | < | ||
+ | function utf8_encodeFN($file, | ||
+ | global $conf; | ||
+ | if($conf[' | ||
+ | | ||
+ | return $file;} | ||
+ | if($safe && preg_match('# | ||
+ | return $file; | ||
+ | } | ||
+ | |||
+ | if($conf[' | ||
+ | return SafeFN:: | ||
+ | } | ||
+ | |||
+ | $file = urlencode($file); | ||
+ | $file = str_replace(' | ||
+ | return $file; | ||
+ | } | ||
+ | |||
+ | function utf8_decodeFN($file){ | ||
+ | global $conf; | ||
+ | if($conf[' | ||
+ | | ||
+ | return $file;} | ||
+ | |||
+ | if($conf[' | ||
+ | return SafeFN:: | ||
+ | } | ||
+ | |||
+ | return urldecode($file); | ||
+ | } | ||
+ | </ | ||
* 對於不同的內碼,將" | * 對於不同的內碼,將" | ||
* CP936是簡體中文、CP950是繁體中文 | * CP936是簡體中文、CP950是繁體中文 | ||
行 70: | 行 93: | ||
目前知道的不足有以下一些: | 目前知道的不足有以下一些: | ||
- 需要mb_string模塊支援; | - 需要mb_string模塊支援; | ||
- | - 對文件名進行了編碼轉換,估計會影響運行的效率((不過對於我這種個人用戶來講,影響不大)); | + | - 對文件名進行了編碼轉換,估計會影響運行的效率((不過對於資料庫細小的個人用戶來講,影響不大。)); |
- 當更換作業系統時,還需要增加內容,對文件名進行mb_detect_encoding處理; | - 當更換作業系統時,還需要增加內容,對文件名進行mb_detect_encoding處理; | ||
- 會和Tag plugin的index功能衝突,產生亂碼的index | - 會和Tag plugin的index功能衝突,產生亂碼的index | ||
- | \\ | ||
- | \\ | ||
- | ====== 關於中文頁面名亂碼的解決辦法2 ====== | + | ====== 關於中文頁面名亂碼的解決辦法(二) |
===== 伺服器環境 ===== | ===== 伺服器環境 ===== | ||
* windows XP Profession SP2 | * windows XP Profession SP2 | ||
行 129: | 行 150: | ||
---- | ---- | ||
+ | ====== 關於中文頁面名亂碼的解決辦法——之Windows下亂碼 ====== | ||
+ | ===== 伺服器環境 ===== | ||
+ | * windows Server 2008R2 | ||
+ | * Apache 2.2 | ||
+ | * PHP 5 | ||
+ | * dokuwiki-2010-11-07a.tgz “Anteater” | ||
+ | 新版本可以直接設定編碼是UTF-8, | ||
+ | 但是windows還是使用big5作為目錄與檔名的編碼 | ||
+ | 如是在windows下,這三種方法還是得到亂碼 | ||
+ | 我作了以下的修改可以正常的運作 | ||
+ | 1.conf/ | ||
+ | 修改$conf[' | ||
+ | 2.inc/ | ||
+ | <code php> | ||
+ | function utf8_encodeFN($file, | ||
+ | global $conf; | ||
+ | ...略 | ||
+ | if($conf[' | ||
+ | return SafeFN:: | ||
+ | } | ||
+ | // | ||
+ | if($conf[' | ||
+ | return mb_convert_encoding($file,' | ||
+ | } | ||
+ | //到這 | ||
+ | $file = urlencode($file); | ||
+ | $file = str_replace(' | ||
+ | return $file; | ||
+ | } | ||
+ | ... | ||
+ | function utf8_decodeFN($file){ | ||
+ | global $conf; | ||
+ | if($conf[' | ||
+ | if($conf[' | ||
+ | return SafeFN:: | ||
+ | } | ||
+ | | ||
+ | // | ||
+ | if($conf[' | ||
+ | return mb_convert_encoding($file,' | ||
+ | } | ||
+ | //到這 | ||
+ | return urldecode($file); | ||
+ | return $file; | ||
+ | } | ||
+ | </ | ||
+ | 提供給大家參考 | ||
+ | ---- | ||
- | 本頁面授權方式為[[http:// | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 本頁面授權方式為[[http:// |
zh-tw/pagename.1245140352.txt.gz · 上一次變更: 2009-06-16 10:19 由 124.9.197.82