On a system that supports at least C11, I can create an UTF8-encoded literal string through:
(uint8_t const *) u8"..." Could Gnulib abstract this into a macro so that substitutes for systems that do not have u8 string literals can be provided. On a C11 system, we would have #define UTF8(s) ((uint8_t const *) u8 ## s) and similar definitions for UTF16 and UTF32. Similarly, something like #define ASCII(s) (u8 ## s [0]) for pre-C2x systems would be nice so that ASCII("c") expands into the ASCII code point of the character `c'.