¿Se garantiza que una cadena de caracteres anchos que comienza con L como L “Hello World” se codifique en Unicode?

Recientemente he intentado obtener una imagen completa de los pasos necesarios para crear aplicaciones C ++ independientes de la plataforma que admiten Unicode. Una cosa que me confunde es que la mayoría de los procedimientos y las cosas igualan la codificación de caracteres (es decir, ANSI o Unicode) y el tipo de carácter (char o wchar_t). Como he aprendido hasta ahora, estas son cosas diferentes y puede existir una secuencia de caracteres codificada en Unicode pero representada por std :: string, así como una secuencia de caracteres codificada en ANSI pero representada como std :: wstring, ¿verdad?

Entonces, la pregunta que me viene a la mente es si el estándar de C ++ ofrece alguna garantía sobre la codificación de los literales de cadena a partir deL ¿O simplemente dice que es de tipo wchar_t con codificación de caracteres específica para la implementación?

Si no existe tal garantía, ¿significa eso que necesito algún tipo de sistema de recursos externos para proporcionar literales de cadena no ASCII para mi aplicación de una manera independiente de la plataforma? ¿Cuál es la forma preferida para esto? ¿Sistema de recursos o codificación adecuada de los archivos de origen más las opciones de compilación adecuadas?

Respuestas a la pregunta(3)

Su respuesta a la pregunta