成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

對MySQL 中文亂碼的解決方案的描述

數據庫 MySQL
此篇文章主要是對MySQL 中文亂碼的解決方案的描述,以下就是文章對MySQL 中文亂碼的解決方案的詳細內容的具體介紹,望大家借鑒。

以下的文章主要是對MySQL 中文亂碼解決方案的描述,MySQL 中文亂碼在實際的應用中是經常出現的在實際的運行中帶來很多的不便,以下的文章就是介紹MySQL 中文亂碼解決方案。

 

過去幾個月就不斷有來信詢問各種MySQL(和PHP搭配之***組合)中文相容的問題,所以有機會看到許多玩家們用的各式連接法與程式,實在太開眼界。

最近因為轉換到flex 2做為開發平臺并重寫一些產品,許多去年寫的framework就無法使用,而其中有部份專門處理多國語系的library也隨之失效,導致我得重新面對這個問題,所以正好籍此機會將一些新心得整理出來。

MySQL(和PHP搭配之***組合)MySQL 中文亂碼的原因

 

MySQL(和PHP搭配之***組合)會出現中文亂碼的原因不外乎下列幾點:

-MySQL(和PHP搭配之***組合) server本身設定問題,例如還停留在latin1

-MySQL(和PHP搭配之***組合) table的語系設定問題(包含character與collation)

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

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

接下來只需要補充幾點注意事:

MySQL(和PHP搭配之***組合)MySQL 中文亂碼必勝解決法

 

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]

 

 

  1. default-character-set=utf8   
  2. [client]    
  3. default-character-set=utf8   
  4. 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的設定,例如:

 

 

  1. PLAIN TEXT   
  2. <?   
  3. //database connection details.   
  4. $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也不再會有MySQL 中文亂碼問題,可以安心使用啰。

【編輯推薦】

  1. QL字符的編碼轉換問題詳解
  2. MySQL QueryCache原理經典講解
  3. MySQL參數設置如何解決瓶頸效應?
  4. MySQL MyISAM的引擎和InnoDB引擎的比較
  5. MySQL force Index 強制索引概述

 

責任編輯:佚名 來源: 互聯網
相關推薦

2010-05-17 14:49:43

MySQL中文亂碼

2011-12-21 14:46:26

JavaJFreeChart

2010-05-31 18:33:00

MySQL中文亂碼

2010-05-17 09:49:46

MySQL中文問題

2010-05-28 19:25:11

MySQL移植問題

2010-05-17 14:17:25

MySQL pytho

2010-05-27 12:49:30

MySQL中文亂碼

2024-11-08 13:47:35

中文亂碼配置

2009-07-24 11:24:33

ASP.NET中文亂碼

2009-07-02 13:26:32

JSP中文亂碼

2010-05-31 12:38:48

Nagios中文

2011-03-29 14:35:34

2010-05-20 10:00:58

MySQL 中文亂碼

2010-03-12 18:22:51

Python文本亂碼

2010-05-14 17:27:40

MySQL中文亂碼

2011-04-01 15:09:08

MRTG亂碼

2010-06-07 09:22:21

MySQL+PHP亂碼

2011-02-23 17:13:19

FileZilla

2010-05-18 14:00:46

MySQL5.0中文問

2010-05-19 15:59:30

MySQL 中文亂碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 麻豆精品一区二区三区在线观看 | 亚洲一区在线观看视频 | 亚洲精品一区二区三区在线观看 | 日韩在线视频一区 | 中文字幕一区在线观看视频 | www成人免费视频 | 亚洲成人午夜在线 | 欧美国产精品一区二区三区 | 男人天堂99 | 日批免费看 | 国产乱码精品一区二区三区中文 | 日韩精品在线观看免费 | 日韩欧美精品 | 久久精品在线免费视频 | 久久久一二三区 | 欧美成人一级视频 | 精品国产免费一区二区三区五区 | 亚洲电影一区二区三区 | 91看片网| 亚洲综合视频一区 | aⅴ色国产 欧美 | 日韩精品一二三 | 成年女人免费v片 | 一级免费看片 | 亚洲精色 | 亚洲风情在线观看 | 精品国产一二三区 | 欧美一级在线观看 | 九九热免费在线观看 | 中文字幕在线播放不卡 | 国产精品欧美一区二区三区不卡 | 国产精品海角社区在线观看 | 国产东北一级毛片 | 国产精品一级 | 成人欧美一区二区三区在线播放 | 三级黄色大片网站 | 国产男女视频 | 中文字幕成人 | 国产精品久久久久久久久久免费看 | 福利精品 | 日韩精品二区 |