Codificación WINDOWS-1252 al escribir fichero txt
Publicado por Gary Host (4 intervenciones) el 28/03/2019 13:14:36
Hola a todos,
me está volviendo loco este tema.
Voy a simplificar el código porque hay consultas a base de datos y demás.
Tengo que escribir un txt desde php con codificación ANSI windows-1252.
Escribo todas las líneas correctamente, pero la última sólo contiene números y por algún motivo, al escribirla me lo guarda en UTF-8.
Si añado una línea al final con "á" por ejemplo, me lo guarda bien, pero si la quito o añado un caracter cualquiera sin tilde, vuelve a UTF-8.
Aquí el código que lo guarda en WINDOWS-1252:
Aquí el código que lo guarda en UTF-8:
Gracias de antemano.
me está volviendo loco este tema.
Voy a simplificar el código porque hay consultas a base de datos y demás.
Tengo que escribir un txt desde php con codificación ANSI windows-1252.
Escribo todas las líneas correctamente, pero la última sólo contiene números y por algún motivo, al escribirla me lo guarda en UTF-8.
Si añado una línea al final con "á" por ejemplo, me lo guarda bien, pero si la quito o añado un caracter cualquiera sin tilde, vuelve a UTF-8.
Aquí el código que lo guarda en WINDOWS-1252:
1
2
3
4
5
6
7
8
9
10
11
<?php
$cabecera = "123456789 001280319280318\r\n123456789 001280319280318\r\n123456789 001280319280318\r\n";
$archivo = fopen("archivo.txt", "w+b");
fwrite($archivo, iconv("UTF-8", "WINDOWS-1252", $cabecera));
//begin foreach
fwrite($archivo, iconv("UTF-8", "WINDOWS-1252", "AQUÍ EL STRING"));
//end foreach
$pie = "\r\n0000000000000000 0123456789123456789"\r\n123456789789789 123456789456123"\r\n";
fwrite($archivo, iconv("UTF-8", "WINDOWS-1252", $pie));
fclose($archivo);
?>
Aquí el código que lo guarda en UTF-8:
1
2
3
4
5
6
7
8
9
10
11
$cabecera = "123456789 001280319280318\r\n123456789 001280319280318\r\n123456789 001280319280318\r\n";
$archivo = fopen("archivo.txt", "w+b");
fwrite($archivo, iconv("UTF-8", "WINDOWS-1252", $cabecera));
//begin foreach
fwrite($archivo, iconv("UTF-8", "WINDOWS-1252", "AQUÍ EL STRING"));
//end foreach
$pie = "\r\n0000000000000000 0123456789123456789"\r\n123456789789789 123456789456123"\r\n";
fwrite($archivo, iconv("UTF-8", "WINDOWS-1252", $pie));
fwrite($archivo, iconv("UTF-8", "WINDOWS-1252", "á"));
fclose($archivo);
?>
Gracias de antemano.
Valora esta pregunta


0