I am not sure bytelength is the right thing to use. I guess in general it will be conservative but if your db is
utf-8 and you have a varchar(20), isn't is 20 characters even if they are multibyte? Conversely if your db is iso-8859-1
and you enter high bit characters bytelength will say 2
bytes but the representation in the DB will be one byte.