use c_utf8_read_codepoint()
use c_buffer_add_printf() when possible