查看所有包含 xajax 标签的文章
六月
25

XOOPS的Page模组UTF-8字符编码下的使用方法

Author Dominic    Category PHP, XOOPS     Tags , , , , ,

文明猪汉化了非常好用的模组,其功能强大得过了头,充分体现了数据展现分离思想,将中原本主题、布局、区块的概念扩充到主题、布局、区块、皮肤,将原来相对固定的布局方式更改为随意布局的形式(如果可以直接拖动就更完美了),将然来局限于系统提供的区块提升到可以随意创建区块和随意利用区块的高度,但是目前模组仅仅只能使用GB2312编码上,如果网站采用UTF-8编码这不能利用这个模组。之前就找到了解决的办法,这次乘解决中文显示的问题一并写出来吧。

其实这个bug是由库引起的(参见我另外一篇文章:PHP中xajax库中文问题及提示返回XML文件无效的解决办法 ),解决办法是:

目录下所有文件全部采用UTF-8无BOM格式保存(当然语言文件不必要),至少server/.server.这个文件需要采用UTF-8无BOM格式保存(UltraEdit 操作方法:F12或另存为界面中格式下拉框选择‘UTF-8-无 BOM’),index.这个也需要UTF-8无BOM格式保存,另外建立对应的UTF-8编码的语言文件。再将Framework目录下目录下所有的文件全部使用UTF-8无BOM格式保存。一般即可。

之前的一个项目中使用了UTF-8格式的模组,这个模组的UTF-8格式支持包还是让文明猪来发布吧,不过有需要的也可以联系我。

 

六月
25

PHP中xajax库中文问题及提示返回XML文件无效的解决办法

Author Dominic    Category PHP     Tags , , ,

下一个非常好的ajax框架,虽然自己说自己是一个库(Library),但是我觉得它更像一个框架(Framework)。是一个开源的 类库 它能够让你黏合HTML、CSS、Javascript和,并可以结合Smarty模板系统使用。

在运用模组的时候,发现其不能和中文正常工作,特别是不能和UTF-8编码的页面一起工作,昨天在利用这个实现DataGrid的时候发现完全不能正常工作了,一直报“the XML response that was returned from the server is invalid”这个错误,Google了一下,发现不少人也有这个问题。结合之前解决模组(感谢文明猪)的UTF-8使用问题的方法,终于发现了完美解决库使用中文的方法。

如果页面采用GB2312或GBK作为编码或字符集,一般网络上面提到的方法可以解决:需要注意的是common.、server.及server.用到的文件(特别是生成数据的文件)全部不要使用UTF-8编码格式保存而使用ASCII格式保存。同时server.输出的数据内容最好也采用gb2312编码。
在common.前面定义
define(‘XAJAX_DEFAULT_CHAR_ENCODING’,'GB2312′);
再在调用时使用:
$ = new ();
$->decodeUTF8InputOn();
或者
$ = new (‘gb2312′);
$->setCharEncoding();
$->decodeUTF8InputOn();
$objResponse = new xajaxResponse(‘gb2312′);

如果页面采用UTF-8字符集的话,网上一些人说使用UTF-8格式编码就可以了,实际上即使全部使用UTF-8编码也不能正常工作,还是会报错:“the XML response that was returned from the server is invalid”。联想到之前在IE下碰到UTF-8 BOM Bug(文章:IE下页面无端端空出一行及utf8页面无法显示的解决方法 ),会不会这个地方服务器传回的XML文件中也包含多个UTF-8 BOM内容呢?通过ethereal截获数据包发现,服务器返回的内容中还真是包含了多个UTF-8 BOM,可能还是IE使用的Microsoft XML Parser的UTF-8 BOM Bug吧。这样解决办法就出来了:所有页面全部采用UTF8编码并使用无UTF-8 BOM保存(UltraEdit 操作方法:F12或另存为界面中格式下拉框选择‘UTF-8-无 BOM’),页面包括库文件、common.文件、server.文件。供访问的页面也可以使用无UTF-8 BOM保存。

有时候返回的参数(特别是中文部分)被url编码了,这个时候需要我们将返回的数据使用Urldecode进行处理,以便能够正常完成后面的数据库操作。

最新 0.25下载地址:http://prdownloads.sourceforge.net/xajax/xajax_0.2.5.zip?download

中文手册(HonestQiao第一版,FlyingHail修改版) http://www.flyinghail.net/?p=44

UTF-8 BOM解释:”EF BB BF” 这三个字节就叫BOM,BOM的全称叫做”Byte Order Mard”。在UTF-8文件中常用BOM来表明这个文件是UTF-8文件,而BOM的本意实在UTF-16中用来表示高低字节序列的。

另外,网站上说使用–enable-zend-multibyte可以解决这类问题,不过没有尝试,并且预计在 6.0中会对Unicode做完美的支持。

专题推荐

标签

404错误 apache article CSS dotNet fckeditor Hack iOS iTouch javascript PayPal PHP rar ubuntu utf8 VMware VMware Tools weblinks Win2008 Windows Server 2008 Wordpress xajax XOOPS 上传 个人 中文 中文习惯 关键词 合肥 域名 安全 工作 文件类型 文章管理 时区 未分类 模块 模板 模组 电子地图 界面友好 禅意花园 网速 腾讯 配置管理

分类目录

新浪微博

存档

最近文章

近期评论

友情链接

分享按钮