同じ文字列を4つの単位で箱に分けます。箱の数がその単位での数え方です。
maxlengthは人が見る箱ではなく、string.length(UTF-16)の箱を上限の基準にします。
maxlength
string.length
箱の数が数え方です。赤い箱はmaxlengthの境界を超えたUTF-16です。