首頁 資料庫 mysql教程 举例详解MySQL字符集_MySQL

举例详解MySQL字符集_MySQL

Jun 01, 2016 pm 01:56 PM
資料庫表

举例详解MySQL字符集,下面是完整的一个例子:

1、创建数据库表

MySQL>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;

#注意后面这句话 "COLLATE utf8_general_ci",大致意思是在排序时根据utf8校验集来排序

#那么在这个数据库下创建的所有数据表的默认字符集都会是utf8了

MySQL>create table my_table (name varchar(20) not null default '')type=myisam default charset utf8;

#这句话就是创建一个表了,制定默认字符集为utf8

2、写数据

例子1是通过PHP直接插入数据:

a.PHPMySQL_connect('localhost','user','password');mysql_select_db('my_db');//请注意,这步很关键,如果没有这步,所有的数据读写都会不正确的//它的作用是设置本次数据库联接过程中,数据传输的默认字符集//其他编程语言/接口也类似,例如 .net/c#/odbc//jdbc则设置连接字符串为类似"jdbc:mysql://localhost/db?user=user&password=123456&useUnicode=true&characterEncoding=UTF-8"mysql_query("set names utf8;");//必须将gb2312(本地编码)转换成utf-8,也可以使用iconv()函数mb_convert_encoding("insert into my_table values('测试');", "utf-8", "gb2312");?>b.php//输出本页编码为utf-8header("content-type:text/HTML; charset=utf-8");mysql_connect('localhost','user','password');mysql_select_db('my_db');mysql_query("set names utf8;");if(isset($_REQUEST['name')){//由于上面已经指定本页字符集为utf-8了,因此无需转换编码mysql_query(sprintf("insert into my_table values('%s');", $_REQUEST['name']));}$q = mysql_query("select * from my_table");while($r = mysql_fetch_row($q)){print_r($r);}?>

自此,使用utf8字符集的完整的例子结束了.

如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询排序等问题,可以使用binary属性约束,例如:

create table my_table ( name varchar(20) binary not null default '')type=myisam default charset latin1;

附1:旧数据升级办法

以原来的字符集为latin1为例,升级成为utf8的字符集。原来的表: old_table (default charset=latin1),新表:new_table(default charset=utf8)。

第一步:导出旧数据

MySQLdump --default-character-set=latin1 -hlocalhost -uroot -B my_db --tables old_table > old.sql

第二步:转换编码(类似Unix/Linux环境下)

iconv -t utf-8 -f gb2312 -c old.sql > new.sql

或者可以去掉 -f 参数,让iconv自动判断原来的字符集

iconv -t utf-8 -c old.sql > new.sql

在这里,假定原来的数据默认是gb2312编码。

第三步:导入

修改old.sql,在插入/更新语句开始之前,增加一条sql语句:

"SET NAMES utf8;"

,保存。

MySQL -hlocalhost -uroot my_db

大功告成!!

附2:支持查看utf8字符集的MySQL客户端有

1.) MySQL-Front,据说这个项目已经被MySQL AB勒令停止了,不知为何,如果国内还有不少破解版可以下载(不代表我推荐使用破解版 :-P)。

2.) Navicat,另一款非常不错的MySQL客户端,汉化版刚出来,还邀请我试用过,总的来说还是不错的,不过也需要付费。

3.) PHPMyAdmin,开源的php项目,非常好。

4.) Linux下的终端工具(Linux terminal),把终端的字符集设置为utf8,连接到MySQL之后,执行 SET NAMES UTF8; 也能读写utf8数据了。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

資料庫視圖和表格怎麼區分 資料庫視圖和表格怎麼區分 Aug 22, 2023 am 11:27 AM

資料庫視圖和表格是資料庫中的兩個不同的概念,有著不同的功能和用途,表是資料庫中真正儲存資料的實體,而視圖是從一個或多個表中導出的虛擬表,用於以特定的方式呈現和操作數據。表格具有更高的資料持久性,而視圖則提供了更靈活和便捷的資料存取方式。

什麼是NEAR Protocol幣? NEAR Protocol幣有什麼特色? 什麼是NEAR Protocol幣? NEAR Protocol幣有什麼特色? Mar 04, 2024 pm 11:20 PM

NEARProtocol:可擴展、用戶友好的區塊鏈平台NEARProtocol是一個採用分片技術的區塊鏈平台,旨在應對區塊鏈技術在可擴展性、用戶友好性和安全性方面面臨的挑戰。它為開發者提供了一個高效和用戶友好的平台,使他們能夠輕鬆建立和部署去中心化應用程式(dApps)。 NEARProtocol的設計旨在降低區塊鏈開發的門檻,同時提供高度的效率和安全性。透過採用分片技術,NEARProtocol可以更好地處理大規模交易,並且為用戶提供更快速的交易確認時間。總的來說,NEARProtocol旨在為

如何使用PHP建立和管理資料庫表 如何使用PHP建立和管理資料庫表 Sep 09, 2023 pm 04:48 PM

如何使用PHP創建和管理資料庫表隨著互聯網的迅速發展,資料庫成為了各種網站和應用程式不可或缺的組成部分。在PHP中,我們可以利用資料庫管理系統(DBMS)如MySQL來建立和管理資料庫表。本文將教你如何使用PHP來實現這項功能,並附上對應的程式碼範例。連接資料庫首先,我們需要在PHP中連接到資料庫。可以使用PHP提供的mysqli擴充或PDO來實現這項功能。

資料庫視圖和表格有哪些區別 資料庫視圖和表格有哪些區別 Sep 04, 2023 pm 03:13 PM

資料庫檢視和表格的差異有:1、表格是資料庫中用來儲存資料的實體結構,而檢視只是基於資料表或多個資料表的查詢結果集;2、資料表是資料的實體儲存單元,檢視只是提供了查看和操作表資料的規則;3、視圖為資料庫提供進階的安全機制,表沒有安全機制;4、視圖是表的抽象;5、視圖可查詢中組合多個表,表只能查詢單一表; 6.表格是資料庫中的永久性結構,視圖不是;7、視圖可建立相同名稱的視圖,表格不能建立同名表格等等。

資料庫視圖和表格的差別有哪些 資料庫視圖和表格的差別有哪些 Aug 22, 2023 am 11:15 AM

資料庫視圖和表在資料庫中有以下5點區別:1、視圖不儲存數據,而表是實際儲存資料的物件;2、視圖的資料是一個虛擬表,而表中的資料可以來自多個來源; 3.視圖繼承查詢語句的結構,而表格具有自己的結構定義;4、視圖不可更新,而表允許直接對其進行操作;5、視圖基於底層表的權限,而表具有自己的存取權限。

安鈦克650電源主機板線介面的接腳數量是多少? (安鈦克650電源接線圖) 安鈦克650電源主機板線介面的接腳數量是多少? (安鈦克650電源接線圖) Jan 03, 2024 am 10:46 AM

安鈦克650w主機板線是幾pin的安鈦克650W電源主機板的電源線通常是24pin的,這是主機板上最大的電源介面。它的作用是連接主機板和電源,為主機板和其他系統組件提供電源。此外,安鈦克650W電源還可能包含其他類型的電源接口,如CPU8pin、PCIe6+2pin等,用於連接CPU和獨立顯示卡等其他組件。主機板走線教學主機板走線是指在設計主機板時,將各個電子元件之間的電路連接起來的過程。在這個過程中,需要考慮電路的穩定性、訊號傳輸的速度和準確性等因素。根據電路圖進行走線時,需注意佈局和選擇適當的線寬和距離,避免

優化MySQL表結構以解決連線問題 優化MySQL表結構以解決連線問題 Jun 30, 2023 pm 01:04 PM

MySQL連線問題之如何優化資料庫表結構?在開發應用程式時,資料庫連接是非常重要的一部分。當我們在使用MySQL資料庫時,正確優化資料庫表結構可以提高查詢和連接效能,從而提升應用程式的效能和回應速度。本文將介紹一些最佳化資料庫表結構的方法,以解決MySQL連線問題。一、合理設計表結構在設計資料庫表結構時,需要根據應用程式的需求,合理地設計表之間的關係,減少數據

資料匯出:自訂資料庫表 資料匯出:自訂資料庫表 Sep 02, 2023 pm 06:01 PM

如本系列的第一篇文章中所提到的,自訂資料庫表的主要問題之一是它們不由現有的匯入和匯出處理程序處理。本文旨在解決這個問題,但應該指出的是,目前還沒有完全令人滿意的解決方案。讓我們考慮兩種情況:自訂表格引用本機WordPress表格自訂表格完全獨立於原生表格「最壞情況」是第一種情況。以保存使用者活動日誌的自訂表為例。它引用使用者ID、物件ID和物件類型-所有這些都引用儲存在本機WordPress表中的資料。現在想像一下,有人想要將其WordPress網站中的所有資料匯入到第二個網站中。例如,完全

See all articles