国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

完美解決mysql中文亂碼的問題

2024-07-24 12:55:31
字體:
來源:轉載
供稿:網友
,歡迎訪問網頁設計愛好者web開發。

*mysql(和php搭配之最佳組合)中文亂碼的原因

mysql(和php搭配之最佳組合)會出現中文亂碼的原因不外乎下列幾點:

-mysql(和php搭配之最佳組合) server本身設定問題,例如還停留在latin1

-mysql(和php搭配之最佳組合) table的語系設定問題(包含character與collation)

-客戶端程式(例如php)的連線語系設定問題

在之前的兩篇文章中已介紹過如何設定mysql(和php搭配之最佳組合) server/table的character/collation。

接下來只需要補充幾點注意事:
*mysql(和php搭配之最佳組合)中文亂碼必勝解決法

1、mysql(和php搭配之最佳組合)啟動時會讀取一個預設的config檔,一般名稱為my.ini,而它會到下列兩位置去尋找這個檔案:

c:/windows/my.ini也就是作業系統的安裝目錄,也有可能是c:/winnt/my.ini
c:/:my.cnf也就是c disk的根目錄

注意不同位置里的檔案suffix不一樣,這點在之前的文章中沒有特別強調,因此那時我是用更復雜的方法直接重新將mysql(和php搭配之最佳組合)注冊到service里面,并在那里指定my.ini的位置。
 
2、my.ini里的內容為:
[mysql(和php搭配之最佳組合)d]
default-character-set=utf8

[client]
default-character-set=utf8
init_connect='set names utf8'

其中mysql(和php搭配之最佳組合)d是指定server啟動時要用的語系,但如果這里設定為utf8可能會讓許多英文軟體不開心,例如oscommerce/mediawiki,所以這里建議設成latin1。

下面的client則是設定當client連線時要使用什么語系,但可惜的是這個設定不是每個client都會鳥它,基本上只有mysql(和php搭配之最佳組合)自已家的程式,例如mysql(和php搭配之最佳組合).exe, mysql(和php搭配之最佳組合)d.exe, mysql(和php搭配之最佳組合)admin.exe或是mysql(和php搭配之最佳組合) control center這種程式會去讀取這個設定檔然后改用utf8連線。

note:感謝b6s桑熱情相助提供第二行指令,據說比一支支php程式去設定connection setting更快,這樣應該也可以順便解決phpmyadmin無法正確顯示unicode中文的問題(不過amfphp到是不吃這套,一定要乖乖的自已設定語系才行)
 
但大部份工程師應該都是自已寫php/jsp(sun企業級應用的首選)程式去連線,此時自然不會讀取這個設定而繼續使用預設的語系- latin1。
 
這也正是八成來信朋友陣亡的地方。
 
通常我會用一個獨立的檔案來處理mysql(和php搭配之最佳組合) connection的設定,例如:
plain text
<?
//database connection details.
$host = "localhost";
$link = mysql(和php搭配之最佳組合)_connect($host, "xxx", "xxx");
mysql(和php搭配之最佳組合)_query("set names 'utf8'");
mysql(和php搭配之最佳組合)_select_db("your_table_name_here", $link);
?>

請注意在mysql(和php搭配之最佳組合)_connect后第五行的地方有加上一個"set names 'utf8' "的指令,告訴mysql(和php搭配之最佳組合)這個connection之后的連線內容都要使用utf8,經過這樣設定后,通常就可以解決大部份問題。

從這里也可以推想得知,如果你有用某種custom connection pooling機制,就要記得在每次建立新的connection后立即設定為utf8。

這組設定經過幾天的反覆測試(使用中文繁、簡、日文、韓文)后已經證實完全不會有亂碼或是某些字變成"口"。

例子:試者輸入這幾個字「不道可否啰」如果它們能正確進入mysql(和php搭配之最佳組合)再被讀出來,那就是中文沒問題了,如果讀出來后變成『口』字那就是革命還未成功同志仍需努力...orz

當然我也順便驗證了flex2 - amfphp - php - mysql(和php搭配之最佳組合)來回傳resultset也不再會有中文亂碼問題,可以安心使用啰。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五寨县| 赤水市| 赣州市| 泊头市| 洛宁县| 阜平县| 滕州市| 格尔木市| 文登市| 中江县| 和龙市| 汤阴县| 岑巩县| 伊川县| 衡水市| 阿勒泰市| 蚌埠市| 巴彦淖尔市| 樟树市| 兴文县| 永登县| 蓬莱市| 永春县| 甘洛县| 宁津县| 道孚县| 昂仁县| 江川县| 托克逊县| 康马县| 西乌珠穆沁旗| 万州区| 唐海县| 保靖县| 临江市| 壤塘县| 浠水县| 乌审旗| 平阴县| 逊克县| 阿克苏市|