estoy usando osql para ejecutar varias secuencias de comandos SQL contra una base de datos y luego hay que buscar en el archivo de resultados para comprobar si se han producido errores. El problema es que a Perl no parece gustarle el hecho de que los archivos de resultados sean Unicode.¿Cómo puedo abrir un archivo Unicode con Perl?
escribí un pequeño script de prueba para probarlo y la salida salga todo trinó:
$file = shift;
open OUTPUT, $file or die "Can't open $file: $!\n";
while (<OUTPUT>) {
print $_;
if (/Invalid|invalid|Cannot|cannot/) {
push(@invalids, $file);
print "invalid file - $inputfile - schedule for retry\n";
last;
}
}
¿Alguna idea? He intentado decodificar usando decode_utf8
pero no hace la diferencia. También intenté configurar la codificación al abrir el archivo.
Creo que el problema podría ser que osql pone el archivo de resultados en formato UTF-16, pero no estoy seguro. Cuando abro el archivo en el teclado, me dice 'Unicode'.
Editar: Utilizando Perl v5.8.8 Editar: volcado Hex:
file name: Admin_CI.User.sql.results
mime type:
0000-0010: ff fe 31 00-3e 00 20 00-32 00 3e 00-20 00 4d 00 ..1.>... 2.>...M.
0000-0020: 73 00 67 00-20 00 31 00-35 00 30 00-30 00 37 00 s.g...1. 5.0.0.7.
0000-0030: 2c 00 20 00-4c 00 65 00-76 00 65 00-6c 00 20 00 ,...L.e. v.e.l...
0000-0032: 31 00 1.
¿Cómo se ve la salida como? ¿Puedes proporcionar un volcado hexadecimal + ascii del comienzo del archivo? –
de salida es como la siguiente: ■ 1> 2> M s g 1 5 1 5 1, L e v e l 1 6, S t t u 1 –
¿Qué iba a utilizar para suministrar un hexágono + volcado ASCII del principio del archivo? –