Thank you, Arjen, for your helpful guidance. Unfortunately despite
environment initialization fiddling in the PHP script it still doesn't
render properly. Commands added to the script are:
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET NAMES utf8');
mysql_query('SET COLLATION_CONNECTION utf8');
mysql_query('SET COLLATION_DATABASE latin1');
Many combinations of the above lines tried in the PHP script just after
connecting to MySQL server and mysql_select_db to connect to correct DB with
basically the same result. Page characteristics change as statements are
added and removed, so I know they're taking effect. I see no more errors in
the apache error log, and the weblog sees the request. The page looks best
without any of the new commands. Perhaps explicitly resetting any other
differences in mysql environment variables to match the server where it's
working will fix it. Will try those soon and report back results.
From: Arjen Lentz [mailto:arjen@stripped]
Sent: Wednesday, May 06, 2009 2:59 PM
To: Hamid Majidy
Subject: Re: Loss of HTML Graphics Characters
On 07/05/2009, at 2:17 AM, Hamid Majidy wrote:
> Hello MySQL community. I have MySQL 5.0.45 with Apache 2.2.3 running
> CentoOS 5.2 with a page display issue. Pages display as:
> Â Â Â Â ModelÂ Â Â Â Â Â
> Ihave changed DB collation to latin1_swedish_ci on former to match the
> latter DB tables collation setting. All database and table settings
> phpAdmin appear identical, yet the two HTML pages rendered on the same
> Windows client machine running the same instance of Firefox appear
> different. I have even dumped the entire table structure and
> contents from
> one and imported to the other with the same result. HTML contents of
> the 2
> fields have to be identical after the import. Restarting apache and
> after all the changes did not help either.
Collation has to do with sorting.
What you need to check out is character set (usually utf8 or latin1).
if you are using utf8, you should use something like utf8_general_ci
as the collation also.
But most importantly, your PHP connection should first set "SET
NAMES=utf8" as soon as it connects, before doing anything else.
That'll make the connection use utf8 properly without mangling stuff
that comes out of the db.
Then, there's the character set indicator of your HTML pages
themselves, a HTML page can indicate which charset it's using; check
Arjen Lentz, Director @ Open Query (http://openquery.com)
Affordable Training and ProActive Support for MySQL & related
Follow our blog at http://openquery.com/blog/
OurDelta: free enhanced builds for MySQL @ http://ourdelta.org
MySQL Community Mailing List
For list archives: http://lists.mysql.com/community