void Utf8::Encoder::encode_char(unichar ch, string &buf)
{
- if(ch<0 || ch>0x10FFFF)
+ if(!is_valid_unichar(ch))
return error(ch, buf, invalid_character(ch, "UTF-8"));
unsigned bytes = 1;
for(; *i&mask; mask>>=1)
++bytes;
- string::const_iterator j = i;
+ auto j = i;
unichar result = (*j++)&(mask-1);