I’m developing a website in Brazilian Portuguese and I’m facing some really annoying encoding problems.
Words that should be written this way: óbito are being written this way: �bito
I have noticed that while the texts are still at the database they are ok. But when I use echo with PHP, the encoding problem comes up.
List of things I have already done and did not help:
1- Set the PHP files to be saved as UTF-8
2- I’m using this meta tag <meta http-equiv="content-type" content="text/html; charset=utf-8" />
3- I used this SQL Queries:
CREATE DATABASE db_name
CHARACTER SET utf8
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci
DEFAULT COLLATE utf8_general_ci
;
ALTER DATABASE db_name
CHARACTER SET utf8
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci
DEFAULT COLLATE utf8_general_ci
;
ALTER TABLE tbl_name
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci
;
You can change the charset using this function:
(if the function returns true it’s been successful). This should fix your problems for the connection.
For older versions of PHP, you can use the following:
It seems like PHP uses latin1 by default and I can’t find a way to change the default. So I guess you’ll have to use
mysql_set_charset()every time you start a new connection.Boa Sorte.