Re: issue with accents and mysql

From: Date: Wed, 16 Feb 2005 01:55:09 +0000
Subject: Re: issue with accents and mysql
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-208799@lists.php.net to get a copy of this message
On Tue, 2005-02-15 at 17:40, mario wrote: > Hi, > > thanks, but that seems to be ok: > SQL result > Host: 127.0.0.1 > Database : ---- > Generation Time: Feb 15, 2005 at 11:36 PM > Generated by: phpMyAdmin 2.5.7-pl1 / MySQL 3.23.58 > SQL-query: SHOW VARIABLES LIKE 'character_set%'; > Rows: 2 > > Variable_name > Value > character_set > latin1 > character_sets > latin1 big5 cp1251 cp1257 croat > czech danish dec8 ... > > any further idea? > thanks > mario > > ps of course, I could > On Tue, 2005-02-15 at 21:42, Guillermo Rauch wrote: > > Try > > SHOW VARIABLES LIKE 'character_set%' > > > > and verify your character set is latin1. > > > > If not, see > > http://dev.mysql.com/doc/mysql/en/charset-database.html > > > > On Tue, 15 Feb 2005 22:04:30 +0000, mario <chiari.hm@flashnet.it> wrote: > > > Hello, > > > > > > please help me on the following issue. > > > please reply to chiari.hm@flashnet.it too. > > > (I asked for help on the php-db ml, but nobody replied) > > > > > > I have hacked the following function: > > > function accents($text) { > > > global $export; > > > $search = array ( 'à', 'è', 'ì', 'ò' , > > > 'ù'); > > > $replace = array ( '\\{a}', > > > '\\{e}', '\\{i}', '\\�>î > > > éÇÞó!/çjÔ{o}', '\\`{u}'); > > > $export = str_replace($search, $replace, $text); > > > return $export; > > > } > > > > > > It works fine, as long as I feed it with a string: > > > accents('à') --> \`{a} > > > > > > The issue is when I get 'à' from a mysql table. > > > I.e., for some record of a mysql table Table, let à the value of the > > > field Field, and say > > > $result = mysql_fetch_array($answer, MYSQL_BOTH), > > > where $answer= mysql_query(SELECT * FROM Table). > > > > > > Now accents($result['Field']) returns à (instead of \`{a}). > > > Why? I have no idea. > > > > > > Any hint is welcome. > > > Thanks a lot I have no idea what might be the problem but I would probably start by seeing what the difference is at the ascii level. preg_split the strings and run ord on each one foreach ( preg_split("//","this is a string") as $char ) { echo "The ascii value for $char is ". ord($char) . "\n"; } post the results from both sources and lets see what can be found. Bret

« previous php.general (#208799) next »