MySql資料庫使用SQL語句設定編碼,mysql資料庫sql語句

來源:互聯網
上載者:User

MySql資料庫使用SQL語句設定編碼,mysql資料庫sql語句
-- 查看所有的字元編碼

SHOW CHARACTER SET;

-- 查看建立資料庫的指令並查看資料庫使用的編碼
show create database dbtest;

-- 查看資料庫編碼:

show variables like '%char%';


-- 設定character_set_server、set character_set_client和set character_set_results
set character_set_server = utf8;               -- 伺服器的預設字元集。使用這個語句可以修改成功,但重啟服務後會失效。根本的辦法是修改配置MYSQL檔案MY.INI,character_set_server=utf8,配置到mysqld欄位下。
set character_set_client = gbk;                -- 來自用戶端的語句的字元集。伺服器使用character_set_client變數作為用戶端發送的查詢中使用的字元集。
set character_set_results = gbk;               -- 用於向用戶端返回查詢結果的字元集。character_set_results變數指示伺服器返回查詢結果到用戶端使用的字元集。包括結果資料,例如列值和結果中繼資料(如列名)。


-- 建立資料庫時,設定資料庫的編碼方式  
-- CHARACTER SET:指定資料庫採用的字元集,utf8不能寫成utf-8
-- COLLATE:指定資料庫字元集的定序,utf8的預設定序為utf8_general_ci(通過show character set查看)
drop database if EXISTS dbtest;
create database dbtest CHARACTER SET utf8  COLLATE  utf8_general_ci; 

-- 修改資料庫編碼
alter database dbtest CHARACTER SET GBK COLLATE gbk_chinese_ci;
alter database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;


-- 建立表時,設定表、欄位編碼
use dbtest;
drop table if exists tbtest;
create table tbtest(
id int(10) auto_increment,
user_name varchar(60) CHARACTER SET GBK COLLATE gbk_chinese_ci,
email varchar(60),
PRIMARY key(id)
)CHARACTER SET utf8 COLLATE utf8_general_ci;

-- 修改表編碼
alter table tbtest character set utf8 COLLATE utf8_general_ci;
-- 修改欄位編碼
ALTER TABLE tbtest MODIFY email VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_general_ci;


-- 查看某欄位使用的編碼:
SELECT CHARSET(email) FROM tbtest;




怎在mysql建表語句中設定編碼屬性,使其可以顯示中文

你的mysql庫 的 編碼和 你的指令碼編碼一致 就不用擔心 中文 亂碼
如果沒辦法一致 也可以用 set names 這個命令
 
我將mysql改為utf-8編碼 用·sql語句添加不了中文了

段都有編碼設定.
出現亂碼肯定是你現在用的編碼混亂造成的

解決辦法:

第一步 先改資料庫編碼

先修改你的資料庫,如果你頁面用的是UTF-8編碼那麼你資料庫內的編碼也需要設定為UTF-8,每個欄位都需要設定.要保持內外一致,你可以用Navicat for MySQL工具,這個工具裡能看得很清除,如果表\欄位很多的話你可以匯出SQL語句,然後把SQL語句中相應的編碼替換例如gb2312替換成utf8,然後再重新建立一個庫,建立的時候字元集選擇utf8的再把SQL語句匯入,檢查一下所有的編碼都是utf8的就OK

第二步 程式修改

1\讀庫的時候
mysql_query("set names utf8");
2\每個頁面頭部加上一句
header("content-Type: text/html; charset=utf-8");
3\檢查所有的編碼聲明是否正確
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4\檢查頁面中現有文字所使用的編碼是否正確,推薦你使用editplus在右下角會有顯示UTF-8或者ANSI,要保證所有帶有中文的檔案開啟後顯示的編碼集是UTF-8,如果不是的話可以將所有檔案開啟然後從菜單選擇"文檔"-"檔案編碼"-"檔案編碼(多檔案)",然後選擇所有的檔案點確定,更改編碼為UTF-8確定!

OK到此位置大功告成,所有的編碼一致,絕對不會再出現亂碼了,多說一句.對於MYSQL操作工具的選擇本人只推薦兩款,一是大家都熟悉的PHPMYADMIN 再就是Navicat for MySQL也有很多人都在用.至於MYSQL-font實在有些垃圾,有時顯示出來的資料庫結構和實際的都有差別....不敢苟同,另外MYSQL官方出的SQLyog對於編碼的支援太差勁了,很難控制具體的編碼,所以最好也不要用
 

相關文章

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.