今天下午反覆實驗了一下午,雖然還沒有完全總結好,不過先記一記.
先說經驗:
1. xajax支持中文問題(0.2.5以上版本)
xajax默認使用uft-8字符集,不支持中文(奇怪,uft-8字符集應該支持中文), 解決辦法主要有兩種較爲可行.
1) 修改 xajax.inc.php中的XAJAX_DEFAULT_CHAR_ENCODING,默認爲uft-8,修改爲gb2312.(經過測試修改成其他均無效).
2)不修改xajax.inc.php,而是在創建xajax對象時指定字符集.
$xajax = new xajax('','xajax_','gb2312');
另外xajaxResponse創建時也需要指定字符集
$resp = new xajaxResponse('gb2312');
以上兩種方法均可順利解決.網上其他方法比較混亂,未予測試.
2. 在xajax中調用MYSQL中的數據顯示
1)根據反覆試驗,使用默認latin1字符集的MYSQL可以直接支持xajax輸出,不需要做任何額外設置.而且用PHP腳本和命令提示符向表中插入數據時均無問題.唯一缺點是這樣插入的中文在phpmyadmin下顯示亂碼,因爲phpmyadmin用uft-8編碼顯示.(我想這對編程沒有大的影響,因爲phpmyadmin很少用來直接查看數據內容.用做表設計\維護等沒有任何問題).
2)也可以使用UFT-8,但是在xajax中要正常顯示必須首先執行:
mysql_query("SET CHARATER SET gb2312")
此種情況下通過phpmyadmin插入的數據在phpmyadmin下可以顯示.通過PHP腳本插入的數據無法正常顯示,但是可以直接在xajax 中顯示而不需要執行上面的腳本.
以上主要是總結的經驗.研究中也有另外一點心得.
(不一定正確,目前還在總結中,請勿迷信)
不管mysql的表中如何設置字符集,通過PHP腳本向表中插入數據時,數據的編碼仍然是默認的編碼.如latin1,而不是根據字段的字符集類型存儲.如表的某個字段設置了uft-8作爲整理,但是用PHP插入數據時仍然以latin1編碼插入.
我認爲,表的數據格式只是數據在表中存儲時所用的格式,度取時仍按存入時的編碼. 至於PHPMYADMIN中顯示亂嗎,我看大可不必理會.
3、設計表時直接不要用gb2312,經過試驗,這個字符集極不好用。
總之,設計表時按照默認的latin1方式兼容性就很好。
MYSQL/PHP/XAJAX/PHPMYADMIN字符集問題梳理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
計算上一個月的今天
ppiao1970hank
2018-08-24 14:49:27
輸入任意一個數,得到1到這個數之間的1的個數
ppiao1970hank
2018-08-24 14:49:27
上個月的最後一天及某個月的最後一天
ppiao1970hank
2018-08-24 14:49:27
mysql數據庫授權
ppiao1970hank
2018-08-24 14:49:27
php常用的四種排序算法
ppiao1970hank
2018-08-24 14:49:26
PHP輸出數組中重名的元素的幾種方法
ppiao1970hank
2018-08-24 14:49:26
得到一個URL的domain域
ppiao1970hank
2018-08-24 14:49:25
2個任意維度的數組元素交叉顯示在一維數組的實現算法
ppiao1970hank
2018-08-24 14:49:25
php截取中文字符串時亂碼問題
ppiao1970hank
2018-08-24 14:49:25
數組轉換成字符串遞歸算法
ppiao1970hank
2018-08-24 14:49:24
CKEDITOR使用與配置
richlu2011
2018-08-24 07:26:22
php將一個二維數組按照某個字段值合併成一維數組,如果有重複則將重複的合併成二維數組
wuxieprobe
2018-08-22 19:47:29
(埋葬那些在網上把簡單問題複雜化專業化把垃圾答案胡亂貼的懵懂派)一道月薪3W的java面試題 (小明和小強都是張老師的學生,張老師的生日是某月某日,2人都不知道張老師的生日)
wuxieprobe
2018-08-22 19:47:26
file_get_contents和fread的性能差別
wuxieprobe
2018-08-22 19:47:18