char8_t behaves differently in C and C++