這兩天自己安裝了Moodle,想沒(méi)事學(xué)習(xí)學(xué)習(xí)。以前也曾經(jīng)在學(xué)校服務(wù)器上安裝過(guò)一個(gè)版本,瀏覽的時(shí)候發(fā)現(xiàn)Moodle默認(rèn)安裝后,對(duì)中文支持得不是很好,在日歷項(xiàng)和語(yǔ)言選擇項(xiàng)中的中文會(huì)顯示成亂碼,上網(wǎng)查詢了一下,很多人說(shuō)解決的方法是將moodle/lang文件夾中的langconfig.php文件編碼從原來(lái)的utf-8改為ansi,我照例試了,卻發(fā)現(xiàn)此方法可以改變Moodle中日歷處的中文亂碼,但是顧此失彼,原先語(yǔ)言選擇欄中“簡(jiǎn)體中文”又變成了亂碼,所以我認(rèn)為中文亂碼的原因不在此。
自己在研究了部分Moodle代碼后發(fā)現(xiàn),Moodle其實(shí)是用Apache+PHP+MySQL構(gòu)建的一個(gè)網(wǎng)絡(luò)教學(xué)平臺(tái),Apache是服務(wù)器組件,MySQL是后臺(tái)數(shù)據(jù)庫(kù),網(wǎng)頁(yè)技術(shù)則是采用PHP,所以Moodle中文亂碼的出現(xiàn)肯定是由于MySQL和PHP對(duì)中文編碼的支持不是很好。
查閱了相關(guān)Apache和MySQL中文編碼的設(shè)置,終于解決了該問(wèn)題。
1、不要像網(wǎng)上大多數(shù)人介紹的那樣把moodle/lang文件夾中的langconfig.php文件編碼形式改為ANSI,保留Moodle中文包里的原文件不變;
2、將moodle/php文件夾內(nèi)的php.ini文件中的default_charset="iso-8859-1"改為default_charset="utf-8"
這樣就可以完美的解決Moodle中中文顯示亂碼的問(wèn)題。