Ada Programming $WikiTagline
 

PmWiki2中文化已经部署完成,可以正常输入、显示、搜索中文,用[[中文链接]]的形式可以实现中文WikiWord,能够正常编辑和访问。

使用[[中文链接]]来建立中文Wikiword,但不成功啊.当建立第2个以上的中文WikiWord后,其都是连接到第1个连接,并且page Name都是Name,而不是显示中文名称啊.是否需要一些什么特别的设置来实现中文WikiWord的功能呢?请指教!谢谢!

我没碰到这种情况. 你的local/config.php中有包含了xlpage-utf-8.php么? 用XLPage()也会自动include这个文件. --weijiang? 2005 年 09 月 25 日, 09:39 上午
2.0.6以前的版本没有很好地处理UTF8编码,所以有这个问题,请更新程序版本就可以解决。--EliasSoong? 2005 年 09 月 25 日, 07:37 下午

谢谢weijiang及EliasSoong,我使用的是最新的最新的2.0.6版,并且也使用了最新的xlpage-utf-8.php文件,旧版本在显示汉字“阳光”及“系统”时,“阳”字及“系”字都显示不正确的文字,但现在显示正确了。但就是在使用中文维基文字链接时不正确,所有中文维基文字链接都是指向http://127.0.0.1/pmwiki/pmwiki.php?n=$Group.$Name,正常情况下应该指向相应的Group及Name,但现在都是指向Name,所以所有中文维基文字链接都指向同一页面。这是什么原因呢?再次请教了?谢谢!--henry(approve sites) 2005年9月26日,11时44分

我建议你用一个全新的pmwiki安装再试一下. 我刚才按如下顺序试了一次:
  1. 下载新的pmwiki-2.0.7.zip, 解包到一个目录下
    (该目录可以用http方式访问,我用的是Apache2.0.54+PHP5.0.5)
  2. 在local/config.php中仅加入一行<?php include_once("scripts/xlpage-utf-8.php"); ?>
  3. 在web browser中浏览这个新wiki,我的试验结果是一切正常. --weijiang? 2005 年 09 月 27 日, 03:16 上午

再次谢谢weijiang, 世界就是因为有你这样热心的人而精彩啊.但老天还是在捉弄我.

  1. 我下载了最新的pmwiki-2.0.7.zip,解包到一个新目录pmwiki-2.0.7下.
  2. 在local/下新建config.php文件,仅加入一行<?php include_once("scripts/xlpage-utf-8.php"); ?>
  3. 在Browser中浏览这个新的wiki,建立中文维基文字"红梅颂",然后点击红梅颂,输入"test",点保存,就出现

PmWiki can't process your request Cannot write page to Main.红梅颂 (wiki.d/Main.红梅颂)...changes not saved

We are sorry for any inconvenience.

  1. 但建立中文维基文字"这里试试",然后点击"这里试试",输入"test",点保存,却是成功的,没有错误.
  2. 我是在WindowsXp下php 5.0.4, Apache 2.0.54,会不会是需要对php或Apache做些什么设置呢? 再帮帮我吧!

建议使用http://sourceforge.net/projects/phphome/ 作为php环境试验一下。注意安装phphome的时候全部使用默认参数不要修改,否则phphome可能出现问题。如果这样还是不正常,请把你的整个pmwiki目录打包发送给我(archetype AT 163.com)--EliasSoong? 2005 年 09 月 27 日, 08:20 上午

证实这个bug,红梅颂和单字如存盘会失败,而红梅?却可以成功. 报错是在pmwiki.php:578 fopen()创建新文件处. 类似的比如内容成功, 内容是失败.我的系统是Apache/WinXP.
我将578,590和592处的 "$pagename,new" 全部替换为 $page['host'].$page['time'] 后可以通过.怀疑与Windows文件系统有关. --weijiang? 2005 年 09 月 27 日, 02:42 下午
确实是这样,不过你的改动是什么意思呢?能否解释一下?--EliasSoong? 2005 年 09 月 28 日, 09:58 上午
"$pagename,new"是创建真正页面前的临时文件,最后会通过rename()(592行)将文件名改成$pagename. 即然创建这个临时文件出错,我就先把"$pagename,new"替换为纯Latin字母比如"new",可以通过. 但是这么改会导致多人同时创建新页面时冲突,因此我就改成$page['host'].$page['time'],用访客的IP地址加当前时间作为临时文件名以避免冲突. 由于这个临时文件不久后会被改成正式页面名,所以它本身用什么名字并不重要,只要不冲突就行了. 至于为什么"$pagename,new"创建会失败我也不清楚,但我的WinXP用的编码是GB2312,与UTF-8不同,因此我怀疑与此有关. 我没有在Linux上试验,估计应该无此问题. --weijiang? 2005 年 09 月 28 日, 10:19 上午
感觉这是PHP解析的问题,PHP好像把new前面的逗号处理为函数参数的分隔符了,这样的话,我把你提到的"$pagename,new"都改成"$pagename"+",new",同样也可以正常工作。建议把这个问题提交到PITS上去,请pm先生修改。--EliasSoong? 2005 年 09 月 28 日, 10:09 上午
是的,但使用"$pagename".",new"却还有问题.我记得.和+在PHP里都是合并字符串的. 奇怪 --weijiang? 2005 年 09 月 28 日, 10:19 上午
使用 "$pagename"+",new" 可能有问题,我查了一下PHP文档,+是数值操作. 生成临时文件名很可能会有非法字符或是其他问题. --weijiang? 2005 年 09 月 28 日, 10:27 上午
我也是把+错记成是字符串连接符了,看来只要参数字符串里面含有逗号就有这个问题,用"$pagefile"."_new"就一切正常,好像"$pagefile".".new"也不行。总之告诉pm先生请他另外设置一种临时文件命名方式吧。我一会把这个问题发布到邮件列表,看看pm先生什么建议。--EliasSoong? 2005 年 09 月 28 日, 11:39 上午

用上面所说的方法确实可以解决中文链接的问题,但使用中文命名的group仍然有问题,报错如下: Warning: rename(192.168.0.331153359474,wiki.d/项目开发.哈哈) [function.rename]: Invalid argument in C:\pmwiki\pmwiki.php on line 746 PmWiki can't process your request

Cannot write page to 项目开发.哈哈 (wiki.d/项目开发.哈哈)...changes not saved

We are sorry for any inconvenience.

这种情况该怎么解决啊?我是xp+apche+php5.0--liwei 2006年07月20日,9:39 上午