Also, in utf-8 each code point can be encoded using from 1 to 6 bytes. It is called as variable-width encoding. For example, bigints have the same model of encoding. It can help to save space when we using latin characters set and it "fixes" compatibility problems. This code is an example: io:write([<<X/utf8>> || X <- lists:seq(1, 260)]).