P.S. преобразования между строковыми типами у меня являются только явными, поскольку UTF-8 и UTF-32 занимают разную длину, и для каждого преобразования, если мы хотим, чтобы оно прошло с гарантией, нужно выделять неизвестное заранее количество памяти, большее, чем в источнике. Т.е. операция дорогостоящая и нетривиальная.