Xajax亂碼解決辦法
用xajax給blog寫了幾個AJAX的應(yīng)用,比如這個搜索頁面,挺容易的,xajax到底是現(xiàn)在PHP下面最好的module,而且是為數(shù)不多的支持中文。
不過在開發(fā)中還是遇到中文亂碼的問題,因為xajax的XMLHTTP對象Post表單的時候,是默認(rèn)的用UTF-8字符來發(fā)送的。如果你的網(wǎng)頁本來就是用的UTF-8編碼的話,那么接收到的數(shù)據(jù)是正常的;如果你的網(wǎng)頁編碼是GB2312的話,問題就來了,POST過來的數(shù)據(jù)是UTF-8,而你整個站點(diǎn)是用GB2312來顯示,那么所有的中文字符將全部變成亂碼。
解決的方法其實(shí)也很簡單,在php里面用 iconv( "UTF-8", "gb2312" , $FormValues['a']) 函數(shù)轉(zhuǎn)換一下就可以了。
另外需要在 xajax.class.php 需要改一下默認(rèn)的encoding:
define ('XAJAX_DEFAULT_CHAR_ENCODING', 'gb2312' );
Windows主機(jī)下如果是php4.3.x版本需要單獨(dú)加載iconv()函數(shù)庫(需要在php.ini中正確設(shè)置extension_dir,比如extension_dir = "C:/php/extensions/"
,同時需要取消;extension=php_iconv.dll一行前面的;號,并將c:\php\dlls\iconv.dll復(fù)制到c:\windows\system32目錄下。
posted on 2007-07-21 22:25
豪 閱讀(364)
評論(0) 編輯 收藏 引用 所屬分類:
php學(xué)習(xí)與實(shí)踐