- 論壇徽章:
- 0
|
和很多朋友一樣,在寫PHP代碼的時候,或者移植別人寫過的代碼時,經(jīng)常會出現(xiàn)亂碼..很頭痛!
后來,上網(wǎng)仔細查了下文章,研究了好半天,同時,策劃寫了個全套產(chǎn)品,才把字符集的問題搞定了!總結一下,自己的方法!
1.數(shù)據(jù)庫盡量使用utf8存儲(修改/etc/my.cnf,在[mysqld]段加上default-character-set=utf8)
(已有的數(shù)據(jù)庫,先轉成UTF8格式)
2.PHP程序在查詢數(shù)據(jù)庫之前,執(zhí)行mysql_query(“set names xxxx”);其中xxxx是你網(wǎng)頁的編碼(charset=xxxx),如果網(wǎng)頁中charset=utf8,則xxxx=utf8,如果網(wǎng)頁中 charset=gb2312,則xxxx=gb2312,如果網(wǎng)頁中的charset=ipaddr,則xxxx=ipaddr (開個玩笑,沒這編碼)
幾乎所有WEB程序,都有一段連接數(shù)據(jù)庫的公共代碼,放在一個文件里,在這文件里,加入mysql_query(“set names”)就可以了。
3.PHPMyAdmin不需要做改動。
4.需要注意的是,為保證網(wǎng)頁實際編碼(Windows保存對話框里的編碼)和他聲明的編碼(charset=?)是一致的,請用DW之類的工具做網(wǎng)頁。
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta http-equiv="Content-Language" content="utf-8" />
復制代碼
4.php程序中的header重定向
header("content-type:text/html; charset=xxx");
寫得有點倉促,希望大家指正和補充。
以上文章出自個人博客:blog.airincity.com,轉載請注明出處即可
[ 本帖最后由 Skyverd 于 2007-8-1 10:01 編輯 ] |
|