Confundido sobre std :: wstring, UTF-16, UTF-8 de C ++ y mostrando cadenas en una GUI de Windows

Estoy trabajando en un programa C ++ solo en inglés para Windows donde nos dijeron "siempre use std :: wstring", pero parece que nadie en el equipo realmente tiene mucho entendimiento más allá de eso.

Ya leí la pregunta titulada"std :: wstring VS std :: cadena. Fue muy útil, pero todavía no entiendo cómo aplicar toda esa información a mi problema.

El programa en el que estoy trabajando muestra datos en una GUI de Windows. Esa información se conserva como XML. A menudo transformamos ese XML usando XSLT en HTML o XSL: FO con fines informativos.

Mi sensación basada en lo que he leído es que el HTML debe codificarse como UTF-8. Sé muy poco sobre el desarrollo de GUI, pero lo poco que he leído indica que todo lo relacionado con GUI se basa en cadenas codificadas UTF-16.

Estoy tratando de entender dónde me deja esto. Digamos que decidimos que todos nuestros datos persistentes deben ser XML codificado en UTF-8. ¿Significa esto que para mostrar datos persistentes en un componente de la interfaz de usuario, realmente debería realizar algún tipo de proceso de transcodificación UTF-8 a UTF-16 explícito?

Sospecho que mi explicación podría usar una aclaración, por lo que intentaré proporcionarla si tiene alguna pregunta.

Respuestas a la pregunta(5)

Su respuesta a la pregunta