打算放弃XAJAX了,它竟然无法支持中文!!!(100分求解)

yueyang 2006-11-14 04:40:47
多的也不说了,XAJAX很早先下载的是0.2.4,现在正式版还是0.2.4,最近打算用用结果总是提示:the xml response that was returned from server is invalid。最后发现原来是中文的缘故。

就拿XAJAX自带的helloword.php这个最简单的例子来说,将其中:
function helloWorld($isCaps)
{
if ($isCaps)
$text = "HELLO 中!";//把原WORLD替换成汉字:中
else
$text = "Hello World!";

$objResponse = new xajaxResponse();
$objResponse->addAssign("div1","innerHTML",$text);

return $objResponse;
}
这下在运行的时候就也报那个错了,看来是XAJAX addAssign不支持中文的缘故,谁有解决办法啊?这如果是BUG的话不会这么多个月0.2.4这个版本都没更新过吧?如果解决不了看来就只能放弃XAJAX了。
...全文
205 点赞 收藏 9
写回复
9 条回复
yueyang 2006年11月14日
哦,看来又要给唠叨加分了。
回复 点赞
yueyang 2006年11月14日
我已经发现问题的根源了,直接修改xajax.inc.php里面的utf-8为gb2312就可以了,或者把define ('XAJAX_DEFAULT_CHAR_ENCODING', 'gb2312' );放到程序的require前面。
回复 点赞
xuzuning 2006年11月14日
你改错了,怪谁呢?

<?php
// helloworld.php demonstrates a very basic xajax implementation
// using xajax version 0.1 beta4
// http://xajax.sourceforge.net

define ('XAJAX_DEFAULT_CHAR_ENCODING', 'gb2312' );

require ('../xajax.inc.php');

function helloWorld($isCaps)
{
if ($isCaps)
$text = "HELLO ---- WORLD! 哈哈";
else
$text = "哈哈 Hello World!";

.....

注意:在 xajax.inc.php 中有
if (!defined ('XAJAX_DEFAULT_CHAR_ENCODING'))
{
define ('XAJAX_DEFAULT_CHAR_ENCODING', 'utf-8' );
}
当然你在 xajax.inc.php 中改也是可以的。不过一升级后重新解包就又没有了
所以应该在用户程序里声明
只要 XAJAX_DEFAULT_CHAR_ENCODING 在 xajax.inc.php 文件载入前定义就可以了
回复 点赞
懒得去死 2006年11月14日
我把中文存入进SESSION,然后用XAJAX取出。这样没问题。
回复 点赞
yueyang 2006年11月14日
不会吧,这么快就没人理了?
回复 点赞
yueyang 2006年11月14日
define("XAJAX_DEFAULT_CHAR_ENCODING" , 'gb2312'); //编码,默认为utf-8
$xajax = new xajax();
$xajax->decodeUTF8InputOn();
$xajax->setCharEncoding(XAJAX_DEFAULT_CHAR_ENCODING);
$objResponse = new xajaxResponse(XAJAX_DEFAULT_CHAR_ENCODING);

不行哦。
回复 点赞
PleaseDoTellMeWhy 2006年11月14日
老大一说问题就这么简单...
回复 点赞
xuzuning 2006年11月14日
你没有修改他的语言声明,那当然要报错啦

其实utf-8也没有什么不好
回复 点赞
hfkj 2006年11月14日
不是吧
回复 点赞
发动态
发帖子
基础编程
创建于2007-09-28

9734

社区成员

14.0w+

社区内容

从PHP安装配置,PHP入门,PHP基础到PHP应用
社区公告
暂无公告