Reply to Re: [PHP] issue with accents and mysql

Your name:

Reply:


Posted by Bret Hughes on 10/20/09 11:08

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}', '\\`{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

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация