Quitar el BOM de un fichero con codificación UTF-8

Mirando la compatibilidad de xhtml con el validador de w3, salía un warning avisando de que teníamos los ficheros codificados con BOM de nuestro theme, y que era mejor no tenerlo por compatibilidad con otros navegadores, así que había dos soluciones, abrir fichero a fichero uno por uno y guardarlos sin BOM con notepad++ o un editor similar, o hacer un script que lo automatice por nosotros, así que utilizamos la segunda opción :D

http://validator.w3.org

Byte-Order Mark found in UTF-8 File.

The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is known to cause problems for some text editors and older browsers. You may want to consider avoiding its use until it is better supported.

Primero, creamos un script en perl que será el encargado de eliminar el BOM.

$ editor quitarbom.pl
#!/usr/bin/perl
@file=<>;
$file[0] =~ s/^\xEF\xBB\xBF//;
print(@file)

Y en el directorio de nuestro theme dónde tenemos todos los ficheros con extensión php, lanzamos un bucle for desde linea de comandos (unix-like).


$ cd /nuestrodirectoriodeltheme
$ for f in *.php; do bomkill.pl < $f > sinbom.php; rm -f $f; mv sinbom.php $f; done

Y desapareció el BOM y el warning del w3 de todos los ficheros con extensión php.

Deja un comentario

Tu dirección de correo electrónico no será publicada.