.Net+MySQL組合開發(三) 亂碼篇

來源:互聯網
上載者:User
所用工具

MySQL5.022
VS2005 Team Suite
MySQL Connector Net 5.0.3
EMS SQL Manage 2005 For MySQL

使用過MySQL的朋友都知道有亂碼問題困擾,而出現此問題都是因沒有正確設定其編碼造成;
假設現在要做一個簡體中文網站;
一、設定資料庫編碼
安裝mysql時可選擇編碼,如果已經安裝過,可以變更檔my.ini(此檔案在mysql的安裝目錄下)中的配製以達到目的;開啟檔案找到兩處:[client]

port=3306

[mysql]

default-character-set=gb2312

# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=gb2312

更改紅色部分為gb2312
此時建立資料庫後,資料庫目錄下有個db.opt檔案,內容如下:default-character-set=gb2312
default-collation=gb2312_chinese_ci

編碼資料庫一致
二、用戶端工具編碼

編碼設定與資料庫
編碼相同,可以用用戶端工具直接寫入資料,不產生亂碼;
三、web.config中設定
連接字串中的編碼,MySQL Connector Net 5.0.3用<connectionStrings>
    <add name="MySqlServer" connectionString="Data Source=127.0.0.1;User ID=root;Password=123;DataBase=BOOK;Charset=gb2312"/>
  </connectionStrings>

讀取寫入的編碼<globalization responseEncoding ="gb2312" requestEncoding ="gb2312"/>

OK,此時設定完成,做好的網站即一個簡體中文網站,不會有亂碼的;
如果需要做一個繁體網站,把以上設定編碼的地方變成"gbk"即可。

常見問題:
Character set 'gbk' is not supported
出現此問題,十有八九可能你用了底版本的MySQL Connector ,因為在MySQL Connector 1.07中提供的字元編碼是有限的,找到不到web.config中設定的編碼類別型,沒有gbk,不過好像有big5,具體請看MySQL Connector 1.07源碼中的CharSetMap.cs檔案,其中

public static CharacterSet GetChararcterSet(DBVersion version, string CharSetName)
        {
            CharacterSet cs = (CharacterSet)mapping[CharSetName];
            if (cs == null)
                throw new MySqlException("Character set '" + CharSetName + "' is not supported");
            return cs;
        }

 

private static void LoadCharsetMap()
{
   mapping.Add("latin1", new CharacterSet("latin1", 1));
            mapping.Add("big5", new CharacterSet("big5", 2));
   .
}

而MySQL Connector 5.03中提供的字元編碼相當全面了,所以建議使用5.03,不過5.03與舊版本的mysql資料庫有些地方不太相容。在執行預存程序等大的資料操作時會出現:
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.