[問題] MySQL varchar length的問題
請問在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)
推
04/22 12:23, , 1F
04/22 12:23, 1F
推
04/22 16:46, , 2F
04/22 16:46, 2F
→
04/23 07:31, , 3F
04/23 07:31, 3F
Database 近期熱門文章
PTT數位生活區 即時熱門文章