Cuando uso iconv para convertir de UTF16 a UTF8 todo está bien, pero viceversa, no funciona. que tienen estos archivos:Convierta UTF8 a UTF16 con iconv
a-16.strings: Little-endian UTF-16 Unicode c program text
a-8.strings: UTF-8 Unicode c program text, with very long lines
El texto mirar bien en el editor. Cuando ejecuto esto:
iconv -f UTF-8 -t UTF-16LE a-8.strings > b-16.strings
Entonces consigo este resultado:
b-16.strings: data
a-16.strings: Little-endian UTF-16 Unicode c program text
a-8.strings: UTF-8 Unicode c program text, with very long lines
La utilidad file
no muestra el formato de archivo esperada y el texto no se ve bien en el editor tampoco. ¿Podría ser que iconv no crea la lista de materiales adecuada? Lo ejecuto en la línea de comando MAC.
¿Por qué el b-16 no está en el formato UTF-16LE correcto? ¿Hay alguna otra forma de convertir utf8 a utf16?
Más elaboración está por debajo.
$ iconv -f UTF-8 -t UTF-16LE a-8.strings > b-16le-BAD-fromUTF8.strings
$ iconv -f UTF-8 -t UTF-16 a-8.strings > b-16be.strings
$ iconv -f UTF-16 -t UTF-16LE b-16be.strings > b-16le-BAD-fromUTF16BE.strings
$ file *s
a-16.strings: Little-endian UTF-16 Unicode c program text, with very long lines
a-8.strings: UTF-8 Unicode c program text, with very long lines
b-16be.strings: Big-endian UTF-16 Unicode c program text, with very long lines
b-16le-BAD-fromUTF16BE.strings: data
b-16le-BAD-fromUTF8.strings: data
$ od -c a-16.strings | head
0000000 377 376 /\0 * \0 \0 \f 001 E \0 S \0 K \0
$ od -c a-8.strings | head
0000000 / * * * Č ** E S K Y ( J V O
$ od -c b-16be.strings | head
0000000 376 377 \0 /\0 * \0 * \0 * \0 001 \f \0 E
$ od -c b-16le-BAD-fromUTF16BE.strings | head
0000000 /\0 * \0 * \0 * \0 \0 \f 001 E \0 S \0
$ od -c b-16le-BAD-fromUTF8.strings | head
0000000 /\0 * \0 * \0 * \0 \0 \f 001 E \0 S \0
Está claro que falta la lista de materiales cada vez que ejecuto la conversión a UTF-16LE. ¿Alguna ayuda en esto?
lo que si se ha utilizado 'iconv -f UTF-8 UTF-16LE -t a-b-8.strings -o 16.strings' en su lugar? Dudo que lo arregle, pero vale la pena intentarlo. – cha0site
mi versión de iconv no admite el parámetro -o (MacOS). Como dijiste, probablemente no ayudaría. Gracias por probar de todos modos. –
Su salida muestra 'iconv -f UTF-8 -t UTF-16 a-8.strings' (se ejecuta en un sistema little-endian) generando un UTF-16 de gran tamaño con una BOM. ¿Puedes confirmar eso? ¿El comando 'iconv' de MacOS funciona de manera diferente que el de Linux? 'echo hola | iconv -f ascii -t UTF-16 | od -x' –