RE: How to read/write multibyte to database - Mailing list pgsql-general

From Tatsuo Ishii
Subject RE: How to read/write multibyte to database
Date
Msg-id 20010316102443J.t-ishii@sra.co.jp
Whole thread Raw
In response to RE: How to read/write multibyte to database  (Tatsuo Ishii <t-ishii@sra.co.jp>)
List pgsql-general
From: "Jeff Lu" <jklcom@mindspring.com>
Subject: RE: [GENERAL] How to read/write multibyte to database
Date: Thu, 15 Mar 2001 11:18:29 -0500
Message-ID: <NDBBIHPECLIGKCCLMACAMEJACLAA.jklcom@mindspring.com>

> Another question:
>
> What if the input data stream is mixture of English & Chinese such as
>
> How are you? = §A ¦n ¶Ü ¡H
>
> How should I handle this?

You mean ascii by "English"? Then it's ok since ascii chars always
lower than 0x80.

> -----Original Message-----
> From: Tatsuo Ishii [mailto:t-ishii@sra.co.jp]
> Sent: Thursday, March 15, 2001 7:16 AM
> To: jklcom@mindspring.com
> Cc: pgsql-general@postgresql.org
> Subject: RE: [GENERAL] How to read/write multibyte to database
>
>
> > Can you please tell me what I need to do in my program to treat BIG5 such
> > that it will not conflict with ASCII escape sequence?
>
> Probably splitword and unescape_url need to rework, I'm not sure
> actualy what you are doing inside them though. For example, if you
> need to find '&', you would do like this:
>
> unsigned char *p = your_string_to_parse;
> int len = strlen(p);
> while (len > 0)
> {
>   if (*p == '&')
>     break;
>   if (p > 0x7f)    /* first byte of BIG5 ? */
>   {
>     p++;        /* skip second byte */
>     len--;
>   }
>   p++;
>   len--;
> }
>
> > Thanks
> >
> > -----Original Message-----
> > From: Tatsuo Ishii [mailto:t-ishii@sra.co.jp]
> > Sent: Saturday, March 10, 2001 8:39 AM
> > To: jklcom@mindspring.com
> > Cc: pgsql-general@postgresql.org
> > Subject: RE: [GENERAL] How to read/write multibyte to database
> >
> >
> > > I'm using BIG5
> >
> > Then you lose. Because BIG5 containts byte patterns conflicting with
> > ASCII special charcters (like '\'), I guess your code:
> >
> >     for(i=0; *queryString; i++)
> >     {
> >       splitword(items.Item, queryString, '&');
> >       unescape_url(items.Item);
> >       splitword(items.name, items.Item, '=');
> >
> >       if(!strcmp(items.name, "Name"))
> >       {
> >         strcpy(name, items.Item);
> >       }
> >       else if(!strcmp(items.name, "Address"))
> >       {
> >         strcpy(address, items.Item);
> >       }
> >
> > won't work. Change your program to treat BIG5 carefully.  Or you
> > probably better to use EUC_TW or UTF-8 to write your web contents.
> > --
> > Tatsuo Ishii

pgsql-general by date:

Previous
From: Alex Howansky
Date:
Subject: error logging
Next
From: Tatsuo Ishii
Date:
Subject: RE: How to read/write multibyte to database