[Phpmyadmin-devel] UTF8 and connection encoding

cand. inf. Alexander M. Turek me at derrabus.de
Mon Feb 9 10:47:42 CET 2009


Hi Sebastian and list,

Sebastian Mendel schrieb:
> 
> if someone changes connection setting in main.php from UTF-8 to 
> something else, all content from DB will be delivered with this encoding 
> to users Browser, but we say the document is UTF-8 and strings coming 
> from us (language files) are in UTF-8

Who changed this anyway? In my original MySQL 4.1 compatibility code,
the option to change the connection charset was intentionally not given
to the user - only for dump files, afaik.

> so we end up with a mixed encoding in the HTML output

Right, we would need to either recode the language files or on the fly
any string that comes from MySQL. But I guess, we would destroy the
"intention" of that feature - see my explanation below.

> there are two options:
> 
> - setting PHP output encoding
> 
> http://php.net/manual/en/mbstring.http.php
> 
> do not know if this takes care of already mixed encodings

It doesn't, afaik.

> - do not allow switching connection charset

+++ from my side

> why is this required anyway?

Well, if you use some old MySQL application that was coded against MySQL
3.23 and thus is not aware of all that charset stuff, it certainly will
happen that this application writes in a different charset than MySQL
assumes. For instance, phpBB 2.x internally uses UTF-8 (which MySQL
prior 4.1 did non support anyway), but does not send "SET NAMES utf8".
MySQL by default assumes latin1 (which was the default charset in MySQL
3.23). The result is that you have kind of double encoded data in your
tables. If you access these tables with phpMyAdmin, it looks like they
are displayed wrong (while in fact, phpMyAdmin is right).

Setting the connection charset to latin1 but treating incoming data as
if it was utf8 is exactly what phpBB 2 and other applications do, so the
data displays seemingly correctly.

Anyway, when I wrote the code for MySQL 4.1, my opinion was that this
should not be the problem of phpMyAdmin.

If you decide to keep that "feature", it is imho to prominent where it
is right now and you should add warnings with tons of exclamation marks
against using it.

Regards,

Alexander

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 258 bytes
Desc: OpenPGP digital signature
URL: <http://lists.phpmyadmin.net/pipermail/developers/attachments/20090209/98e2208e/attachment.sig>


More information about the Developers mailing list