資源描述:
《完美解決mysql中文亂碼的問題》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、完美解決mysql中文亂碼的問題>>教育資源庫 *MySQL(和PHP搭配之最佳組合)中文亂碼的原因 MySQL(和PHP搭配之最佳組合)會出現(xiàn)中文亂碼的原因不外乎下列幾點(diǎn): -MySQL(和PHP搭配之最佳組合)server本身設(shè)定問題,例如還停留在latin1 -MySQL(和PHP搭配之最佳組合)table的語系設(shè)定問題(包含character與collation) -客戶端程式(例如php)的連線語系設(shè)定問題 在之前的兩篇文章中已介紹過如何設(shè)定MySQL(和PHP搭配之最佳組合)server/table的character/collation?! 〗酉聛碇恍枰a(bǔ)充幾點(diǎn)
2、注意事: ?。狹ySQL(和PHP搭配之最佳組合)中文亂碼必勝解決法 1、MySQL(和PHP搭配之最佳組合)啟動時會讀取一個預(yù)設(shè)的config檔,一般名稱為my.ini,而它會到下列兩位置去尋找這個檔案: C:y.ini也就是作業(yè)系統(tǒng)的安裝目錄,也有可能是C:y.ini C::my.f也就是Cdisk的根目錄 注意不同位置里的檔案suffix不一樣,這點(diǎn)在之前的文章中沒有特別強(qiáng)調(diào),因此那時我是用更復(fù)雜的方法直接重新將MySQL(和PHP搭配之最佳組合)注冊到service里面,并在那里指定my.ini的位置?! ?、my.ini里的內(nèi)容為: [MySQL(和PHP搭配之最佳組
3、合)d] default-character-set=utf8 [client] default-character-set=utf8 init_connect='SETNAMESutf8' 其中MySQL(和PHP搭配之最佳組合)d是指定server啟動時要用的語系,但如果這里設(shè)定為utf8可能會讓許多英文軟體不開心,例如osmerce/mediaySQL(和PHP搭配之最佳組合)自已家的程式,例如MySQL(和PHP搭配之最佳組合).exe,MySQL(和PHP搭配之最佳組合)d.exe,MySQL(和PHP搭配之最佳組合)admin.exe或是MySQL(
4、和PHP搭配之最佳組合)ControlCenter這種程式會去讀取這個設(shè)定檔然后改用utf8連線?! ote:感謝b6s桑熱情相助提供第二行指令,據(jù)說比一支支php程式去設(shè)定connectionsetting更快,這樣應(yīng)該也可以順便解決phpmyadmin無法正確顯示unicode中文的問題(不過amfphp到是不吃這套,一定要乖乖的自已設(shè)定語系才行) 但大部份工程師應(yīng)該都是自已寫php/jsp(SUN企業(yè)級應(yīng)用的首選)程式去連線,此時自然不會讀取這個設(shè)定而繼續(xù)使用預(yù)設(shè)的語系-latin1。 這也正是八成來信朋友陣亡的地方。 通常我會用一個獨(dú)立的檔案來處理MySQL(和PHP搭配
5、之最佳組合)connection的設(shè)定,例如: PLAINTEXT <? //databaseconnectiondetails. $host=localhost; $link=MySQL(和PHP搭配之最佳組合)_connect($host,xxx,xxx); MySQL(和PHP搭配之最佳組合)_query(SETNAMES'utf8'); MySQL(和PHP搭配之最佳組合)_select_db(your_table_name_here,$link); ?> 請注意在MySQL(和PHP搭配之最佳組合)_connect后第五行的地方有加
6、上一個setnames'utf8'的指令,告訴MySQL(和PHP搭配之最佳組合)這個connection之后的連線內(nèi)容都要使用utf8,經(jīng)過這樣設(shè)定后,通常就可以解決大部份問題。 從這里也可以推想得知,如果你有用某種customconnectionpooling機(jī)制,就要記得在每次建立新的connection后立即設(shè)定為utf8?! ∵@組設(shè)定經(jīng)過幾天的反覆測試(使用中文繁、簡、日文、韓文)后已經(jīng)證實(shí)完全不會有亂碼或是某些字變成口?! ±樱涸囌咻斎脒@幾個字「不道可否啰」如果它們能正確進(jìn)入MySQL(和PHP搭配之最佳組合)再被讀出來,那就是中文沒問題了,如果讀出來后變
7、成『口』字那就是革命還未成功同志仍需努力...orz 當(dāng)然我也順便驗(yàn)證了flex2-amfphp-php-MySQL(和PHP搭配之最佳組合)來回傳resultset也不再會有中文亂碼問題,可以安心使用啰。>>>>這篇文章來自..,。