mysql 不能插入中文和顯示中文

來源:互聯網
上載者:User

標籤:run   set   最好   技術   com   etc   自己的   default   bbs   

一)不能顯示中文解決辦法:

參考:http://bbs3.chinaunix.net/thread-880131-1-1.html

1:windows平台,因為windows作業系統預設的是用了gb2312這個字元,而mysql在安裝的時候,

  預設的是用戶端和伺服器都用了latin1,所以這就導致一個字元集和字元校正不匹配的問題,

  這個時候只需要找到mysql的設定檔my.ini 找到default-character_set ,把他的參數改

  成gb2312就可以了,一共有兩個這樣的參數,一個是對客戶的,一個是伺服器的,我一般建

  議是把伺服器的設定成國際通用的字元utf8。
  2: linux平台,在linux平台上安裝mysql的時候,給於的自由度是很大的,你可以在安裝

  選項./configure中找到資料庫的字元設定(這個還要麻煩你自己看readme安裝檔案 ),這個時

  候最好是把字元設定成gbk,因為這個字元集也是linux平台預設安裝的中文字元集,然後

  在/etc下找到my.cnf檔案(這個檔案在安裝mysql後要自己把他轉移到/etc/下,除非你是

  rpm安裝).需要注意的是linux裡的很多工具都是不支援中文的,哪怕是vi,你可以在startx

  後執行命令kwrite,來編譯檔案,這個圖形變異軟體有一個選項是可以把你所寫的東西轉換

  成任意的字元集,很不錯,

 

二)不能插入中文解決辦法:

參考:http://blog.csdn.net/ancky_zhang/archive/2008/10/15/3078540.aspx

查看錶的結構:mysql> show create table users;

 

mysql> show create table users;
  +-------+-----------------------------------------------------------------------
  ------------------------------------------------------------------------------+
  | Table | Create Table
  |
  +-------+-----------------------------------------------------------------------
  ------------------------------------------------------------------------------+
  | users | CREATE TABLE `users` (
  `userid` int(11) default NULL,
  `username` char(20) character set latin1 default NULL
  ) ENGINE=InnoDB DEFAULT CHARSET=gbk |
  +-------+-----------------------------------------------------------------------
  ------------------------------------------------------------------------------+
  1 row in set (0.00 sec)

 

 

這時向表中插入中文然後有錯誤。
  mysql> insert into users values(88,‘中文‘);
  ERROR 1366 (HY000): Incorrect string value: ‘\xD6\xD0\xCE\xC4‘ for column ‘usern
  ame‘ at row 1
  mysql> insert into users values(88,‘中文‘);
  ERROR 1366 (HY000): Incorrect string value: ‘\xD6\xD0\xCE\xC4‘ for column ‘usern
  ame‘ at row 1

  還要更改users表的username的字元集。
  mysql> alter table users modify username char(20) character set gbk;
  ERROR 1366 (HY000): Incorrect string value: ‘\xC0\xEE\xCB\xC4‘ for column ‘usern
  ame‘ at row 1
  mysql> alter table users modify username char(20) character set gbk;
  ERROR 1366 (HY000): Incorrect string value: ‘\xC0\xEE\xCB\xC4‘ for column ‘usern
  ame‘ at row 1

 

因為表中已經有資料,所以更改username字元集的操作沒有成功
  清空users表中的資料
  mysql> truncate table users;
  Query OK, 3 rows affected (0.01 sec)

  從新更改user表中username的字元集
  mysql> alter table users modify username char(20) character set gbk;
  Query OK, 0 rows affected (0.06 sec)
  Records: 0 Duplicates: 0 Warnings: 0

  這時再插入中文字元,插入成功。
  mysql> insert into users values(88,‘中文‘);
  Query OK, 1 row affected (0.01 sec)

  mysql> select * from users;
  +--------+----------+
  | userid | username |
  +--------+----------+
  | 88 | 中文 |
  +--------+----------+
  1 row in set (0.00 sec)

 

下面是我自己的一個例子

 

 

 

 

 

 

 

 

 

mysql 不能插入中文和顯示中文

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.