看板 Database 關於我們 聯絡資訊
請問在MySQL不同版本對於varchar length的定義是不是不太相同? 比如說我在MySQL 4.1.22建了一個column Vegetarian varchar(1)。 我發現一個UTF-8的中文字元(如:葷)寫進去會發生truncation的情形。 我把"葷"貼到Notepad++,用十六進位去看,是3bytes。 我後來調整Vegetarian成varchar(2),還是被truncation。 調成varchar(3)後,果然成功了,"葷"正常寫入database。 但我之前另一台機器是用MySQL 6.0.4。也有一個column Vegetarian varchar(1)。 它卻可以正常存入UTF-8的"葷"。 如果我把它改成varchar(2),它就可以存: 兩個中文 一個中文、一個英文 兩個英文 讓人感覺MySQL 6.0.4的length的定義不是"有多少bytes", 而是"多少characters(不論character set)"。 但我看了MySQL 5.0與6.0說明書對varchar length的解譯都是"有多少bytes"!? 請問這是什麼問題? -- 西方三聖:http://p8.p.pixnet.net/albums/userpics/8/3/553683/1193661731.jpg
《佛說阿彌陀經》http://web.cc.ncu.edu.tw/~93501025/amtf.doc 十一面觀音咒:http://file.buda.idv.tw/music/DBZFY04.mp3 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.220.219 ※ 編輯: zxvc 來自: 140.115.220.219 (04/22 00:02)
Xezzaosui:我印象中 5.x 也是算 chars 數啊 04/22 12:23
kylekai:你的 表格編碼是什麼?... 04/22 16:46
zxvc:樓上,都是utf8_general_ci。 04/23 07:31