程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> MySQL 4.1的編碼問題

MySQL 4.1的編碼問題

編輯:關於PHP編程

下面要寫的是一篇非常無聊的東西,充斥了大量各式各樣的編碼、轉換、客戶端、服務器端、連接……呃,我自己都不願意去看它,但想一想,寫下來還是有點意義的,原因有四:


    MySQL 4.1 對多語言的支持有了很大變化 (這導致了問題的出現);
    盡管大部分的地方 (包括個人使用和主機提供商),MySQL 3 仍然占主導地位;但 MySQL 4.1 是 MySQL 官方推薦的數據庫,已經有主機提供商開始提供並將會越來越多;
    許多 PHP 程序以 MySQL 作為默認的數據庫管理軟件,但它們一般不區分 MySQL 4.1 與 4.1 以下版本的區別,籠統地稱“MySQL 3.xx.xx 以上版本”就滿足安裝需求了;
    因為 latin1 在許多地方 (下邊會詳細描述具體是哪些地方) 作為默認的字符集,成功的蒙蔽了許多 PHP 程序的開發者和用戶,掩蓋了在中文等語言環境下會出現的問題;

簡單的說,MySQL 自身的變化和使用 MySQL 的 PHP 程序對此忽略,導致了問題的出現和復雜化,而由於大部分用戶使用的是英文,使這種問題不被重視。這裡提到的 PHP 程序,主要就 WordPress 而言。

MySQL 4.1 字符集支持的原理


MySQL 4.1 對於字符集的指定可以細化到一台機器上安裝的 MySQL,其中的一個數據庫,其中的一張表,其中的一欄,應該用什麼字符集。但是,傳統的 Web 程序在創建數據庫和數據表時並沒有使用那麼復雜的配置,它們用的是默認的配置,那麼,默認的配置從何而來呢?

    編譯 MySQL 時,指定了一個默認的字符集,這個字符集是 latin1;
    安裝 MySQL 時,可以在配置文件 (my.ini) 中指定一個默認的的字符集,如果沒指定,這個值繼承自編譯時指定的;
    啟動 mysqld 時,可以在命令行參數中指定一個默認的的字符集,如果沒指定,這個值繼承自配置文件中的;
    此時

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved