It's quite hard for me to help without seeing the actual problem
BOM = Byte Order Mark. When you view/edit a UTF-8 file in a HEX editor, you will see that it starts with two bytes not visible in a text content of the file. They are, in practice, rather useless, aside from making it easy to some editors to recognize file as UTF-8 encoded, and making java compiler fail upon encountering such file with BOM
Removig the BOM is necessary ONLY if the SQL import, eg. via phpMyadmin or other means fails, telling you there is a problem with the content of the file - they read the first two bytes, but might be unable to recognize them as BOM, and try to interpret them as a part of an SQL command.
The strange part is that the database is appearing well..the problem is the stuff inside the language file (english.php).
Let me try some questions to help in finding the cause:
* What does your browser say - is it recognizing an UTF-8 encoding of the page?
* Why are you having problems with the file "english.php"? Shouldn't it be spanish.php or other?
* Is your english.php file REALLY UTF-8 encoded? I.e. when you load it into let's say UltraEdit, and switch to HEX view (Ctrl+H), are the problematic non-iso characters taking two bytes or one? Are all regular characters taking just one byte?
I really can't think of anything else.