significado - ¿Cómo leer/escribir caracteres chinos/japoneses desde/hacia archivos INI?
letras chinas en español (4)
Puede ser solo un problema con la forma en que se muestran o manejan las cadenas. Por ejemplo, la ventana de consola normal no puede mostrar cadenas japonesas con printf.
¿Puedes publicar algo de tu código?
¿Cómo usar WritePrivateProfileString y GetPrivateProfileString en ??? en lugar de los personajes reales.
De acuerdo con la documentación WritePrivateProfileString
, hay una versión Unicode: WritePrivateProfileStringW
. Úselo, y debería poder usar caracteres Unicode.
La función WritePrivateProfileStringW escribirá el archivo INI en la codificación del sistema heredado (por ejemplo, Shift-JIS en un sistema japonés) porque es una función de soporte heredado. Si desea tener un archivo INI completamente habilitado para Unicode, necesitará usar una biblioteca externa.
Pruebe SimpleIni http://code.jellycan.com/simpleini/
Es C ++, archivo de encabezado único, biblioteca de plantillas con licencia MIT (es decir, el uso comercial es aceptable). Inclúyalo en su archivo fuente y úselo. Es multiplataforma, admite UTF-8 y archivos heredados codificados, y puede leer y escribir el archivo INI conservando en gran medida los comentarios y la estructura, etc. Es más fácil consultar la página.
Ha existido por un tiempo y parece ser utilizado por un buen número de personas. Lo escribí y sigo apoyándolo.
GetPrivateProfileString()
y WritePrivateProfileString()
funcionarán con Unicode, más o menos.
Si el archivo ini está codificado en UTF-16LE, es decir, tiene una lista de materiales UTF-16, entonces las funciones funcionarán en Unicode. Sin embargo, si las funciones tienen que crear el archivo, crearán un archivo ANSI y solo funcionarán en ANSI.
Entonces, para usar las funciones con Unicode, cree su archivo ini antes de usarlo por primera vez y escriba una marca de orden de bytes UTF-16LE en él. Entonces continúa como siempre.
Tenga en cuenta que las funciones no funcionan en absoluto con UTF-8 .
Consulte el blog de Michael Kaplan para obtener más detalles de lo que siempre quiso saber sobre esto.