Re: Best practice for: ERROR: invalid byte sequence for encoding "UTF8" - Mailing list pgsql-general

From Ivan Zolotukhin
Subject Re: Best practice for: ERROR: invalid byte sequence for encoding "UTF8"
Date
Msg-id 751e56400708150709v54b8c176lf8256bb1bacdee94@mail.gmail.com
Whole thread Raw
In response to Re: Best practice for: ERROR: invalid byte sequence for encoding "UTF8"  ("Phoenix Kiula" <phoenix.kiula@gmail.com>)
Responses Re: Best practice for: ERROR: invalid byte sequence for encoding "UTF8"
List pgsql-general
Hello,

Actually I tried smth like $str = @iconv("UTF-8", "UTF-8//IGNORE",
$str); when preparing string for SQL query and it worked. There's
probably a better way in PHP to achieve this: simply change default
values in php.ini for these parameters:

mbstring.encoding_translation = On
mbstring.substitute_character = none

and broken symbols will be automatically stripped off from the input
and output. But I am interested in general solution and better
practices anyway...

--
Regards,
 Ivan


On 8/15/07, Phoenix Kiula <phoenix.kiula@gmail.com> wrote:
> On 15/08/07, Ivan Zolotukhin <ivan.zolotukhin@gmail.com> wrote:
> > Hello,
> >
> > Imagine a web application that process text search queries from
> > clients. If one types a text search query in a browser it then sends
> > proper UTF-8 characters and application after all needed processing
> > (escaping, checks, etc) passes it to database. But if one modifies URL
> > of the query adding some trash non-UTF-8 characters, database raises
> > an error: invalid byte sequence for encoding "UTF8".
> >
> > What is the best practice to process such a broken strings before
> > passing them to PostgreSQL? Iconv from utf-8 to utf-8 dropping bad
> > characters?
>
>
>
> Could you do not do this from the application itself, before sending
> it to the DB server? mb_convert_encoding() in PHP for instance?
>

pgsql-general by date:

Previous
From: "Phoenix Kiula"
Date:
Subject: Re: Compound Indexes
Next
From: "Scott Marlowe"
Date:
Subject: Re: Insert or Replace or \copy (bulkload)