Commit a8bd7e1c authored by Bruce Momjian's avatar Bruce Momjian

> Tatsuo Ishii wrote:

> > > > It was made to cope with encoding such as an Asian bloc in 7.2Beta2.
> > > >
> > > > Added ServerEncoding
> > > >         Korean (JOHAB), Thai (WIN874),
> > > >         Vietnamese (TCVN), Arabic (WIN1256)
> > > >
> > > > Added ClientEncoding
> > > >         Simplified Chinese (GBK), Korean (UHC)
> > > >
> > > >
> > > >
> http://www.sankyo-unyu.co.jp/Pool/postgresql-7.2b2.newencoding.diff.tar.gz
> > > > (608K)
> > >
> > > Looks good.  I need some people to review this for me.
> >
> > For me they look good too. The only missing part is a
> > documentation. I will ask him to write it up. If he couldn't, I will
> > do it for him.
> > > The diff is 3mb
> > > but appears to address only additions to multibyte.  I have attached a
> > > list of files it modifies.  Also, look at the sizes of the mb/
> > > directory.  It is getting large:
> > >
> > >   4       ./CVS
> > >   6       ./Unicode/CVS
> > >   3433    ./Unicode
> > >   6197    .
> >
> > Yes. We definitely need the on-the-fly encoding addition capability:
> > i.e. CREATE CHRACTER SET in the future...
> > --
> > Tatsuo Ishii
> >
> >

Address chainge.

http://www.sankyo-unyu.co.jp/Pool/postgresql-7.2.newencoding.diff.gz

Add PsqlODBC and document ...etc patch.

Eiji Tokuya
parent 03194432
...@@ -895,14 +895,15 @@ if test x"${enable_multibyte+set}" = xset; then ...@@ -895,14 +895,15 @@ if test x"${enable_multibyte+set}" = xset; then
enable_multibyte=yes enable_multibyte=yes
case $enableval in case $enableval in
SQL_ASCII|EUC_JP|EUC_CN|EUC_KR|EUC_TW|UNICODE|MULE_INTERNAL|LATIN1|LATIN2|LATIN3|LATIN4|LATIN5|LATIN6|LATIN7|LATIN8|LATIN9|LATIN10|KOI8|WIN|ALT|ISO_8859_5|ISO_8859_6|ISO_8859_7|ISO_8859_8) SQL_ASCII|EUC_JP|EUC_CN|EUC_KR|EUC_TW|JOHAB|UNICODE|MULE_INTERNAL|LATIN1|LATIN2|LATIN3|LATIN4|LATIN5|LATIN6|LATIN7|LATIN8|LATIN9|LATIN10|WIN1256|TCVN|WIN874|KOI8|WIN|ALT|ISO_8859_5|ISO_8859_6|ISO_8859_7|ISO_8859_8)
MULTIBYTE=$enableval;; MULTIBYTE=$enableval;;
*) *)
{ echo "configure: error: argument to --enable-multibyte must be one of: { echo "configure: error: argument to --enable-multibyte must be one of:
SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, JOHAB,
UNICODE, MULE_INTERNAL, UNICODE, MULE_INTERNAL,
LATIN1, LATIN2, LATIN3, LATIN4, LATIN5, LATIN1, LATIN2, LATIN3, LATIN4, LATIN5,
LATIN6, LATIN7, LATIN8, LATIN9, LATIN10, LATIN6, LATIN7, LATIN8, LATIN9, LATIN10,
WIN1256, TCVN, WIN874,
KOI8, WIN, ALT, KOI8, WIN, ALT,
ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8 ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8
Or do not specify an argument to the option to use the default." 1>&2; exit 1; };; Or do not specify an argument to the option to use the default." 1>&2; exit 1; };;
......
...@@ -179,16 +179,16 @@ PGAC_ARG_OPTARG(enable, multibyte, [ --enable-multibyte enable multibyte c ...@@ -179,16 +179,16 @@ PGAC_ARG_OPTARG(enable, multibyte, [ --enable-multibyte enable multibyte c
[MULTIBYTE=SQL_ASCII], [MULTIBYTE=SQL_ASCII],
[ [
case $enableval in case $enableval in
SQL_ASCII|EUC_JP|EUC_CN|EUC_KR|EUC_TW|UNICODE|MULE_INTERNAL|LATIN1|LATIN2|LATIN3|LATIN4|LATIN5|LATIN6|LATIN7|LATIN8|LATIN9|LATIN10|KOI8|WIN|ALT|ISO_8859_5|ISO_8859_6|ISO_8859_7|ISO_8859_8) SQL_ASCII|EUC_JP|EUC_CN|EUC_KR|EUC_TW|JOHAB|UNICODE|MULE_INTERNAL|LATIN1|LATIN2|LATIN3|LATIN4|LATIN5|LATIN6|LATIN7|LATIN8|LATIN9|LATIN10|WIN1256|TCVN|WIN874|KOI8|WIN|ALT|ISO_8859_5|ISO_8859_6|ISO_8859_7|ISO_8859_8)
MULTIBYTE=$enableval;; MULTIBYTE=$enableval;;
*) *)
AC_MSG_ERROR( AC_MSG_ERROR(
[argument to --enable-multibyte must be one of: [argument to --enable-multibyte must be one of:
SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, JOHAB,
UNICODE, MULE_INTERNAL, UNICODE, MULE_INTERNAL,
LATIN1, LATIN2, LATIN3, LATIN4, LATIN5, LATIN1, LATIN2, LATIN3, LATIN4, LATIN5,
LATIN6, LATIN7, LATIN8, LATIN9, LATIN10, LATIN6, LATIN7, LATIN8, LATIN9, LATIN10,
KOI8, WIN, ALT, WIN1256, TCVN, WIN874, KOI8, WIN, ALT,
ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8 ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8
Or do not specify an argument to the option to use the default.]);; Or do not specify an argument to the option to use the default.]);;
esac esac
......
...@@ -45,6 +45,7 @@ PostgreSQL 7.2 multi-byte (MB) support README 2001/9/18 $B:n@.(B ...@@ -45,6 +45,7 @@ PostgreSQL 7.2 multi-byte (MB) support README 2001/9/18 $B:n@.(B
EUC_CN GB $B$r%Y!<%9$K$7$?CfJ8(BEUC$B!%(Bcode set 2 $B$O(B EUC_CN GB $B$r%Y!<%9$K$7$?CfJ8(BEUC$B!%(Bcode set 2 $B$O(B
SS2+2$B%P%$%H%3!<%I(B = 3$B%P%$%HI=8=$G$9!%(B SS2+2$B%P%$%H%3!<%I(B = 3$B%P%$%HI=8=$G$9!%(B
EUC_KR $B4Z9q8l(B EUC$B!%(B EUC_KR $B4Z9q8l(B EUC$B!%(B
JOHAB $B%O%s%0%k%Y!<%9$N4Z9q8l(BEUC.
EUC_TW $BBfOQ$N(B EUC$B!%(Bcode set 2 $B$O(B EUC_TW $BBfOQ$N(B EUC$B!%(Bcode set 2 $B$O(B
SS2+$BLLHV9f(B+2$B%P%$%H%3!<%I(B = 4$B%P%$%HI=8=$G$9!%(B SS2+$BLLHV9f(B+2$B%P%$%H%3!<%I(B = 4$B%P%$%HI=8=$G$9!%(B
UNICODE UTF-8$B!%$?$@$7%5%]!<%H$9$k$N$O(B UCS-2 $B$NHO0O!$(B UNICODE UTF-8$B!%$?$@$7%5%]!<%H$9$k$N$O(B UCS-2 $B$NHO0O!$(B
...@@ -56,6 +57,9 @@ PostgreSQL 7.2 multi-byte (MB) support README 2001/9/18 $B:n@.(B ...@@ -56,6 +57,9 @@ PostgreSQL 7.2 multi-byte (MB) support README 2001/9/18 $B:n@.(B
$B%-%j%kJ8;z(B KOI8(KOI8-R), WIN(CP1251), ALT(CP866)$B$r%5%]!<%H(B $B%-%j%kJ8;z(B KOI8(KOI8-R), WIN(CP1251), ALT(CP866)$B$r%5%]!<%H(B
$B$7$F$$$^$9!%$b$A$m$s(B ISO 8859-5 $B$b;HMQ2DG=$G$9!%(B $B$7$F$$$^$9!%$b$A$m$s(B ISO 8859-5 $B$b;HMQ2DG=$G$9!%(B
$B$3$N>l9g!$(B"LATIN5" $B$H$7$F;XDj$7$F2<$5$$!%(B $B$3$N>l9g!$(B"LATIN5" $B$H$7$F;XDj$7$F2<$5$$!%(B
WIN1256 $B%"%i%V=t9q8l(BWindows$BMQ%(%s%3!<%G%#%s%0(B.
TCVN $B%Y%H%J%`8l(B."ABC"$B$d(B"VSCII"$B$b;HMQ2DG=(B.
WIN874 $B%?%$8l(B.
$BA*Br$NL\0B$H$7$F$O!$1Q8l$HF|K\8l$7$+;H$o$J$$>l9g$O(B EUC_JP($BF1MM$K!$Cf(B $BA*Br$NL\0B$H$7$F$O!$1Q8l$HF|K\8l$7$+;H$o$J$$>l9g$O(B EUC_JP($BF1MM$K!$Cf(B
$B9q8l$7$+;H$o$J$$>l9g$O(B EUC_CN... $B$J$I$H$J$j$^$9(B)$B!$$=$NB>$N8@8l$b;H$$$?(B $B9q8l$7$+;H$o$J$$>l9g$O(B EUC_CN... $B$J$I$H$J$j$^$9(B)$B!$$=$NB>$N8@8l$b;H$$$?(B
...@@ -168,19 +172,37 @@ $ psql -l ...@@ -168,19 +172,37 @@ $ psql -l
EUC_TW EUC_TW, BIG5, UNICODE EUC_TW EUC_TW, BIG5, UNICODE
EUC_CN EUC_CN, UNICODE
EUC_KR EUC_KR, UNICODE
JOHAB JOHAB, UNICODE
LATIN1,3,4 LATIN1,3,4, UNICODE LATIN1,3,4 LATIN1,3,4, UNICODE
LATIN2 LATIN2, WIN1250, UNICODE LATIN2 LATIN2, WIN1250, UNICODE
LATIN5 LATIN5, WIN, ALT, UNICODE LATIN5 LATIN5, WIN, ALT, UNICODE
LATIN6,7,8,9,10 LATIN6,7,8,9,10, UNICODE
ISO_8859_5,6,7,8 ISO_8859_5,6,7,8, UNICODE
WIN1256 WIN1256, UNICODE
TCVN TCVN, UNICODE
WIN874 WIN874, UNICODE
MULE_INTERNAL EUC_JP, SJIS, EUC_KR, EUC_CN, MULE_INTERNAL EUC_JP, SJIS, EUC_KR, EUC_CN,
EUC_TW, BIG5, LATIN1$B$+$i(B5, EUC_TW, BIG5, LATIN1$B$+$i(B5,
WIN, ALT, WIN1250 WIN, ALT, WIN1250
UNICODE EUC_JP, SJIS, EUC_KR, EUC_CN, UNICODE EUC_JP, SJIS, EUC_KR, UHC,
EUC_TW, BIG5, LATIN1$B$+$i(B5, EUC_CN, GBK, EUC_TW, BIG5,
WIN, ALT, WIN1250 LATIN1$B$+$i(B10, ISO_8859_5$B$+$i(B8,
WIN, ALT, WIN1250, WIN1256,
TCVN, WIN874, JOHAB
---------------------------------------------------------------- ----------------------------------------------------------------
$B%P%C%/%(%s%I$H%U%m%s%H%(%s%I$N%(%s%3!<%G%#%s%0$,0[$J$k>l9g!$$=$N$3$H(B $B%P%C%/%(%s%I$H%U%m%s%H%(%s%I$N%(%s%3!<%G%#%s%0$,0[$J$k>l9g!$$=$N$3$H(B
...@@ -390,12 +412,28 @@ o set client_encoding $B%3%^%s%I$r;H$&J}K!(B ...@@ -390,12 +412,28 @@ o set client_encoding $B%3%^%s%I$r;H$&J}K!(B
ISO 8859-3 8859-3.TXT ISO 8859-3 8859-3.TXT
ISO 8859-4 8859-4.TXT ISO 8859-4 8859-4.TXT
ISO 8859-5 8859-5.TXT ISO 8859-5 8859-5.TXT
EUC_JP JIS0201.TXT, JIS0208.TXT, JIS0212.TXT ISO 8859-6 8859-6.TXT
ISO 8859-7 8859-7.TXT
ISO 8859-8 8859-8.TXT
ISO 8859-9 8859-9.TXT
ISO 8859-10 8859-10.TXT
ISO 8859-13 8859-13.TXT
ISO 8859-14 8859-14.TXT
ISO 8859-15 8859-15.TXT
ISO 8859-16 8859-16.TXT
EUC_JP JIS0201.TXT, JIS0208.TXT, JIS0212.TXT,
CP932.TXT, sjis.map
SJIS CP932.TXT SJIS CP932.TXT
EUC_CN GB2312.TXT EUC_CN GB2312.TXT
EUC_KR OLD5601.TXT GBK CP936.TXT
EUC_KR KSX1001.TXT
UHC CP949.TXT
JOHAB JOHAB.TXT
EUC_TW CNS11643.TXT EUC_TW CNS11643.TXT
Big5 BIG5.TXT Big5 BIG5.TXT
WIN1256 CP1256.TXT
TCVN CP1258.TXT
WIN874 CP874.TXT
============================================================ ============================================================
$B<U<-!'(B $B<U<-!'(B
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.21 2002/01/20 22:19:55 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.22 2002/03/05 05:52:42 momjian Exp $ -->
<chapter id="charset"> <chapter id="charset">
<title>Localization</> <title>Localization</>
...@@ -370,6 +370,10 @@ perl: warning: Falling back to the standard locale ("C"). ...@@ -370,6 +370,10 @@ perl: warning: Falling back to the standard locale ("C").
<entry><literal>EUC_KR</literal></entry> <entry><literal>EUC_KR</literal></entry>
<entry>Korean <acronym>EUC</></entry> <entry>Korean <acronym>EUC</></entry>
</row> </row>
<row>
<entry><literal>JOHAB</literal></entry>
<entry>Korean <acronym>EUC</> (Hangle base)</entry>
</row>
<row> <row>
<entry><literal>EUC_TW</literal></entry> <entry><literal>EUC_TW</literal></entry>
<entry>Taiwan <acronym>EUC</acronym></entry> <entry>Taiwan <acronym>EUC</acronym></entry>
...@@ -450,6 +454,18 @@ perl: warning: Falling back to the standard locale ("C"). ...@@ -450,6 +454,18 @@ perl: warning: Falling back to the standard locale ("C").
<entry><literal>ALT</literal></entry> <entry><literal>ALT</literal></entry>
<entry>Windows CP866</entry> <entry>Windows CP866</entry>
</row> </row>
<row>
<entry><literal>WIN1256</literal></entry>
<entry>Arabic Windows CP1256</entry>
</row>
<row>
<entry><literal>TCVN</literal></entry>
<entry>Vietnamese TCVN-5712(Windows CP1258)</entry>
</row>
<row>
<entry><literal>WIN874</literal></entry>
<entry>Thai Windows CP874</entry>
</row>
</tbody> </tbody>
</tgroup> </tgroup>
</table> </table>
...@@ -580,6 +596,21 @@ $ <userinput>psql -l</userinput> ...@@ -580,6 +596,21 @@ $ <userinput>psql -l</userinput>
<literal>UNICODE</literal>, <literal>MULE_INTERNAL</literal> <literal>UNICODE</literal>, <literal>MULE_INTERNAL</literal>
</entry> </entry>
</row> </row>
<row>
<entry><literal>EUC_CN</literal></entry>
<entry><literal>EUC_CN</literal>, <literal>UNICODE</literal>, <literal>MULE_INTERNAL</literal>
</entry>
</row>
<row>
<entry><literal>EUC_KR</literal></entry>
<entry><literal>EUC_KR</literal>, <literal>UNICODE</literal>, <literal>MULE_INTERNAL</literal>
</entry>
</row>
<row>
<entry><literal>JOHAB</literal></entry>
<entry><literal>JOHAB</literal>, <literal>UNICODE</literal>
</entry>
</row>
<row> <row>
<entry><literal>EUC_TW</literal></entry> <entry><literal>EUC_TW</literal></entry>
<entry><literal>EUC_TW</literal>, <literal>BIG5</literal>, <entry><literal>EUC_TW</literal>, <literal>BIG5</literal>,
...@@ -682,7 +713,8 @@ $ <userinput>psql -l</userinput> ...@@ -682,7 +713,8 @@ $ <userinput>psql -l</userinput>
<entry><literal>UNICODE</literal></entry> <entry><literal>UNICODE</literal></entry>
<entry> <entry>
<literal>EUC_JP</literal>, <literal>SJIS</literal>, <literal>EUC_JP</literal>, <literal>SJIS</literal>,
<literal>EUC_KR</literal>, <literal>EUC_CN</literal>, <literal>EUC_KR</literal>, <literal>UHC</literal>, <literal>JOHAB</literal>,
<literal>EUC_CN</literal>, <literal>GBK</literal>,
<literal>EUC_TW</literal>, <literal>BIG5</literal>, <literal>EUC_TW</literal>, <literal>BIG5</literal>,
<literal>LATIN1</literal> to <literal>LATIN10</literal>, <literal>LATIN1</literal> to <literal>LATIN10</literal>,
<literal>ISO_8859_5</literal>, <literal>ISO_8859_5</literal>,
...@@ -690,7 +722,10 @@ $ <userinput>psql -l</userinput> ...@@ -690,7 +722,10 @@ $ <userinput>psql -l</userinput>
<literal>ISO_8859_7</literal>, <literal>ISO_8859_7</literal>,
<literal>ISO_8859_8</literal>, <literal>ISO_8859_8</literal>,
<literal>WIN</literal>, <literal>ALT</literal>, <literal>WIN</literal>, <literal>ALT</literal>,
<literal>KOI8</literal> <literal>KOI8</literal>,
<literal>WIN1256</literal>,
<literal>TCVN</literal>,
<literal>WIN874</literal>,
</entry> </entry>
</row> </row>
<row> <row>
...@@ -720,6 +755,24 @@ $ <userinput>psql -l</userinput> ...@@ -720,6 +755,24 @@ $ <userinput>psql -l</userinput>
<literal>UNICODE</literal>, <literal>MULE_INTERNAL</literal> <literal>UNICODE</literal>, <literal>MULE_INTERNAL</literal>
</entry> </entry>
</row> </row>
<row>
<entry><literal>WIN1256</literal></entry>
<entry><literal>WIN1256</literal>,
<literal>UNICODE</literal>
</entry>
</row>
<row>
<entry><literal>TCVN</literal></entry>
<entry><literal>TCVN</literal>,
<literal>UNICODE</literal>
</entry>
</row>
<row>
<entry><literal>WIN874</literal></entry>
<entry><literal>WIN874</literal>,
<literal>UNICODE</literal>
</entry>
</row>
</tbody> </tbody>
</tgroup> </tgroup>
</table> </table>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# #
# Copyright 2001 by PostgreSQL Global Development Group # Copyright 2001 by PostgreSQL Global Development Group
# #
# $Id: UCS_to_EUC_KR.pl,v 1.2 2001/04/16 06:10:18 ishii Exp $ # $Id: UCS_to_EUC_KR.pl,v 1.3 2002/03/05 05:52:45 momjian Exp $
# #
# Generate UTF-8 <--> EUC_KR code conversion tables from # Generate UTF-8 <--> EUC_KR code conversion tables from
# map files provided by Unicode organization. # map files provided by Unicode organization.
...@@ -20,7 +20,7 @@ require "ucs2utf.pl"; ...@@ -20,7 +20,7 @@ require "ucs2utf.pl";
# first generate UTF-8 --> EUC_KR table # first generate UTF-8 --> EUC_KR table
$in_file = "OLD5601.TXT"; $in_file = "KSX1001.TXT";
open( FILE, $in_file ) || die( "cannot open $in_file" ); open( FILE, $in_file ) || die( "cannot open $in_file" );
......
static pg_local_to_utf LUmapEUC_JP[ 13007 ] = { static pg_local_to_utf LUmapEUC_JP[ 13477 ] = {
{0x8ea1, 0xefbda1}, {0x8ea1, 0xefbda1},
{0x8ea2, 0xefbda2}, {0x8ea2, 0xefbda2},
{0x8ea3, 0xefbda3}, {0x8ea3, 0xefbda3},
...@@ -93,8 +93,9 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = { ...@@ -93,8 +93,9 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = {
{0xa1bd, 0xe28095}, {0xa1bd, 0xe28095},
{0xa1be, 0xe28090}, {0xa1be, 0xe28090},
{0xa1bf, 0xefbc8f}, {0xa1bf, 0xefbc8f},
{0xa1c1, 0xe3809c}, {0xa1c0, 0xefbcbc},
{0xa1c2, 0xe28096}, {0xa1c1, 0xefbd9e},
{0xa1c2, 0xe288a5},
{0xa1c3, 0xefbd9c}, {0xa1c3, 0xefbd9c},
{0xa1c4, 0xe280a6}, {0xa1c4, 0xe280a6},
{0xa1c5, 0xe280a5}, {0xa1c5, 0xe280a5},
...@@ -121,7 +122,7 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = { ...@@ -121,7 +122,7 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = {
{0xa1da, 0xe38090}, {0xa1da, 0xe38090},
{0xa1db, 0xe38091}, {0xa1db, 0xe38091},
{0xa1dc, 0xefbc8b}, {0xa1dc, 0xefbc8b},
{0xa1dd, 0xe28892}, {0xa1dd, 0xefbc8d},
{0xa1de, 0xc2b1}, {0xa1de, 0xc2b1},
{0xa1df, 0xc397}, {0xa1df, 0xc397},
{0xa1e0, 0xc3b7}, {0xa1e0, 0xc3b7},
...@@ -141,8 +142,8 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = { ...@@ -141,8 +142,8 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = {
{0xa1ee, 0xe28483}, {0xa1ee, 0xe28483},
{0xa1ef, 0xefbfa5}, {0xa1ef, 0xefbfa5},
{0xa1f0, 0xefbc84}, {0xa1f0, 0xefbc84},
{0xa1f1, 0xc2a2}, {0xa1f1, 0xefbfa0},
{0xa1f2, 0xc2a3}, {0xa1f2, 0xefbfa1},
{0xa1f3, 0xefbc85}, {0xa1f3, 0xefbc85},
{0xa1f4, 0xefbc83}, {0xa1f4, 0xefbc83},
{0xa1f5, 0xefbc86}, {0xa1f5, 0xefbc86},
...@@ -179,7 +180,7 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = { ...@@ -179,7 +180,7 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = {
{0xa2c1, 0xe288a9}, {0xa2c1, 0xe288a9},
{0xa2ca, 0xe288a7}, {0xa2ca, 0xe288a7},
{0xa2cb, 0xe288a8}, {0xa2cb, 0xe288a8},
{0xa2cc, 0xc2ac}, {0xa2cc, 0xefbfa2},
{0xa2cd, 0xe28792}, {0xa2cd, 0xe28792},
{0xa2ce, 0xe28794}, {0xa2ce, 0xe28794},
{0xa2cf, 0xe28880}, {0xa2cf, 0xe28880},
...@@ -585,6 +586,89 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = { ...@@ -585,6 +586,89 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = {
{0xa8be, 0xe294a5}, {0xa8be, 0xe294a5},
{0xa8bf, 0xe294b8}, {0xa8bf, 0xe294b8},
{0xa8c0, 0xe29582}, {0xa8c0, 0xe29582},
{0xada1, 0xe291a0},
{0xada2, 0xe291a1},
{0xada3, 0xe291a2},
{0xada4, 0xe291a3},
{0xada5, 0xe291a4},
{0xada6, 0xe291a5},
{0xada7, 0xe291a6},
{0xada8, 0xe291a7},
{0xada9, 0xe291a8},
{0xadaa, 0xe291a9},
{0xadab, 0xe291aa},
{0xadac, 0xe291ab},
{0xadad, 0xe291ac},
{0xadae, 0xe291ad},
{0xadaf, 0xe291ae},
{0xadb0, 0xe291af},
{0xadb1, 0xe291b0},
{0xadb2, 0xe291b1},
{0xadb3, 0xe291b2},
{0xadb4, 0xe291b3},
{0xadb5, 0xe285a0},
{0xadb6, 0xe285a1},
{0xadb7, 0xe285a2},
{0xadb8, 0xe285a3},
{0xadb9, 0xe285a4},
{0xadba, 0xe285a5},
{0xadbb, 0xe285a6},
{0xadbc, 0xe285a7},
{0xadbd, 0xe285a8},
{0xadbe, 0xe285a9},
{0xadc0, 0xe38d89},
{0xadc1, 0xe38c94},
{0xadc2, 0xe38ca2},
{0xadc3, 0xe38d8d},
{0xadc4, 0xe38c98},
{0xadc5, 0xe38ca7},
{0xadc6, 0xe38c83},
{0xadc7, 0xe38cb6},
{0xadc8, 0xe38d91},
{0xadc9, 0xe38d97},
{0xadca, 0xe38c8d},
{0xadcb, 0xe38ca6},
{0xadcc, 0xe38ca3},
{0xadcd, 0xe38cab},
{0xadce, 0xe38d8a},
{0xadcf, 0xe38cbb},
{0xadd0, 0xe38e9c},
{0xadd1, 0xe38e9d},
{0xadd2, 0xe38e9e},
{0xadd3, 0xe38e8e},
{0xadd4, 0xe38e8f},
{0xadd5, 0xe38f84},
{0xadd6, 0xe38ea1},
{0xaddf, 0xe38dbb},
{0xade0, 0xe3809d},
{0xade1, 0xe3809f},
{0xade2, 0xe28496},
{0xade3, 0xe38f8d},
{0xade4, 0xe284a1},
{0xade5, 0xe38aa4},
{0xade6, 0xe38aa5},
{0xade7, 0xe38aa6},
{0xade8, 0xe38aa7},
{0xade9, 0xe38aa8},
{0xadea, 0xe388b1},
{0xadeb, 0xe388b2},
{0xadec, 0xe388b9},
{0xaded, 0xe38dbe},
{0xadee, 0xe38dbd},
{0xadef, 0xe38dbc},
{0xadf0, 0xe28992},
{0xadf1, 0xe289a1},
{0xadf2, 0xe288ab},
{0xadf3, 0xe288ae},
{0xadf4, 0xe28891},
{0xadf5, 0xe2889a},
{0xadf6, 0xe28aa5},
{0xadf7, 0xe288a0},
{0xadf8, 0xe2889f},
{0xadf9, 0xe28abf},
{0xadfa, 0xe288b5},
{0xadfb, 0xe288a9},
{0xadfc, 0xe288aa},
{0xb0a1, 0xe4ba9c}, {0xb0a1, 0xe4ba9c},
{0xb0a2, 0xe59496}, {0xb0a2, 0xe59496},
{0xb0a3, 0xe5a883}, {0xb0a3, 0xe5a883},
...@@ -6951,7 +7035,7 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = { ...@@ -6951,7 +7035,7 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = {
{0x8fa2b8, 0xce84}, {0x8fa2b8, 0xce84},
{0x8fa2b9, 0xce85}, {0x8fa2b9, 0xce85},
{0x8fa2c2, 0xc2a1}, {0x8fa2c2, 0xc2a1},
{0x8fa2c3, 0xc2a6}, {0x8fa2c3, 0xefbfa4},
{0x8fa2c4, 0xc2bf}, {0x8fa2c4, 0xc2bf},
{0x8fa2eb, 0xc2ba}, {0x8fa2eb, 0xc2ba},
{0x8fa2ec, 0xc2aa}, {0x8fa2ec, 0xc2aa},
...@@ -13005,5 +13089,111 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = { ...@@ -13005,5 +13089,111 @@ static pg_local_to_utf LUmapEUC_JP[ 13007 ] = {
{0x8fede0, 0xe9bea1}, {0x8fede0, 0xe9bea1},
{0x8fede1, 0xe9bea2}, {0x8fede1, 0xe9bea2},
{0x8fede2, 0xe9bea3}, {0x8fede2, 0xe9bea3},
{0x8fede3, 0xe9bea5} {0x8fede3, 0xe9bea5},
{0x8ff3f3, 0xe285b0},
{0x8ff3f4, 0xe285b1},
{0x8ff3f5, 0xe285b2},
{0x8ff3f6, 0xe285b3},
{0x8ff3f7, 0xe285b4},
{0x8ff3f8, 0xe285b5},
{0x8ff3f9, 0xe285b6},
{0x8ff3fa, 0xe285b7},
{0x8ff3fb, 0xe285b8},
{0x8ff3fc, 0xe285b9},
{0x8ff3fd, 0xe285a0},
{0x8ff3fe, 0xe285a1},
{0x8ff4a1, 0xe285a2},
{0x8ff4a2, 0xe285a3},
{0x8ff4a3, 0xe285a4},
{0x8ff4a4, 0xe285a5},
{0x8ff4a5, 0xe285a6},
{0x8ff4a6, 0xe285a7},
{0x8ff4a7, 0xe285a8},
{0x8ff4a8, 0xe285a9},
{0x8ff4a9, 0xefbc87},
{0x8ff4aa, 0xefbc82},
{0x8ff4ab, 0xe388b1},
{0x8ff4ac, 0xe28496},
{0x8ff4ad, 0xe284a1},
{0x8ff4ae, 0xe782bb},
{0x8ff4af, 0xe4bbbc},
{0x8ff4b0, 0xe583b4},
{0x8ff4b1, 0xe587ac},
{0x8ff4b2, 0xe58c87},
{0x8ff4b3, 0xe58ca4},
{0x8ff4b4, 0xefa88e},
{0x8ff4b5, 0xe5928a},
{0x8ff4b6, 0xe59d99},
{0x8ff4b7, 0xefa88f},
{0x8ff4b8, 0xefa890},
{0x8ff4b9, 0xe5a29e},
{0x8ff4ba, 0xe5afac},
{0x8ff4bb, 0xe5b3b5},
{0x8ff4bc, 0xe5b593},
{0x8ff4bd, 0xefa891},
{0x8ff4be, 0xe5beb7},
{0x8ff4bf, 0xe68285},
{0x8ff4c0, 0xe684a0},
{0x8ff4c1, 0xe6958e},
{0x8ff4c2, 0xe698bb},
{0x8ff4c3, 0xe699a5},
{0x8ff4c4, 0xefa892},
{0x8ff4c5, 0xefa4a9},
{0x8ff4c6, 0xe6a081},
{0x8ff4c7, 0xefa893},
{0x8ff4c8, 0xefa894},
{0x8ff4c9, 0xe6a9ab},
{0x8ff4ca, 0xe6aba2},
{0x8ff4cb, 0xe6b7b8},
{0x8ff4cc, 0xe6b7b2},
{0x8ff4cd, 0xe780a8},
{0x8ff4ce, 0xefa895},
{0x8ff4cf, 0xefa896},
{0x8ff4d0, 0xe79481},
{0x8ff4d1, 0xe79a82},
{0x8ff4d2, 0xe79a9e},
{0x8ff4d3, 0xefa897},
{0x8ff4d4, 0xe7a4b0},
{0x8ff4d5, 0xefa898},
{0x8ff4d6, 0xefa899},
{0x8ff4d7, 0xefa89a},
{0x8ff4d8, 0xefa89b},
{0x8ff4d9, 0xe7aba7},
{0x8ff4da, 0xefa89c},
{0x8ff4db, 0xefa89d},
{0x8ff4dc, 0xe7b6a0},
{0x8ff4dd, 0xe7b796},
{0x8ff4de, 0xefa89e},
{0x8ff4df, 0xe88da2},
{0x8ff4e0, 0xefa89f},
{0x8ff4e1, 0xe896b0},
{0x8ff4e2, 0xefa8a0},
{0x8ff4e3, 0xefa8a1},
{0x8ff4e4, 0xe8a087},
{0x8ff4e5, 0xefa8a2},
{0x8ff4e6, 0xe8adbf},
{0x8ff4e7, 0xe8b3b4},
{0x8ff4e8, 0xe8b5b6},
{0x8ff4e9, 0xefa8a3},
{0x8ff4ea, 0xefa8a4},
{0x8ff4eb, 0xefa8a5},
{0x8ff4ec, 0xe9839e},
{0x8ff4ed, 0xefa8a6},
{0x8ff4ee, 0xe98495},
{0x8ff4ef, 0xefa8a7},
{0x8ff4f0, 0xefa8a8},
{0x8ff4f1, 0xe99692},
{0x8ff4f2, 0xefa79c},
{0x8ff4f3, 0xefa8a9},
{0x8ff4f4, 0xe99cbb},
{0x8ff4f5, 0xe99d8d},
{0x8ff4f6, 0xe99d91},
{0x8ff4f7, 0xefa8aa},
{0x8ff4f8, 0xefa8ab},
{0x8ff4f9, 0xefa8ac},
{0x8ff4fa, 0xe9a69e},
{0x8ff4fb, 0xe9ab99},
{0x8ff4fc, 0xe9adb2},
{0x8ff4fd, 0xefa8ad},
{0x8ff4fe, 0xe9bb91},
}; };
This source diff could not be displayed because it is too large. You can view the blob instead.
static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { static pg_utf_to_local ULmapEUC_JP[ 13175 ] = {
{0xc2a1, 0x8fa2c2}, {0xc2a1, 0x8fa2c2},
{0xc2a2, 0xa1f1},
{0xc2a3, 0xa1f2},
{0xc2a4, 0x8fa2f0}, {0xc2a4, 0x8fa2f0},
{0xc2a6, 0x8fa2c3}, {0xc2a6, 0x8fa2c3},
{0xc2a7, 0xa1f8}, {0xc2a7, 0xa1f8},
{0xc2a8, 0xa1af}, {0xc2a8, 0xa1af},
{0xc2a9, 0x8fa2ed}, {0xc2a9, 0x8fa2ed},
{0xc2aa, 0x8fa2ec}, {0xc2aa, 0x8fa2ec},
{0xc2ac, 0xa2cc},
{0xc2ae, 0x8fa2ee}, {0xc2ae, 0x8fa2ee},
{0xc2af, 0x8fa2b4}, {0xc2af, 0x8fa2b4},
{0xc2b0, 0xa1eb}, {0xc2b0, 0xa1eb},
...@@ -389,7 +386,6 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -389,7 +386,6 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xd19f, 0x8fa7fe}, {0xd19f, 0x8fa7fe},
{0xe28090, 0xa1be}, {0xe28090, 0xa1be},
{0xe28095, 0xa1bd}, {0xe28095, 0xa1bd},
{0xe28096, 0xa1c2},
{0xe28098, 0xa1c6}, {0xe28098, 0xa1c6},
{0xe28099, 0xa1c7}, {0xe28099, 0xa1c7},
{0xe2809c, 0xa1c8}, {0xe2809c, 0xa1c8},
...@@ -403,9 +399,30 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -403,9 +399,30 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe280b3, 0xa1ed}, {0xe280b3, 0xa1ed},
{0xe280bb, 0xa2a8}, {0xe280bb, 0xa2a8},
{0xe28483, 0xa1ee}, {0xe28483, 0xa1ee},
{0xe28496, 0x8fa2f1}, {0xe28496, 0xade2},
{0xe284a1, 0xade4},
{0xe284a2, 0x8fa2ef}, {0xe284a2, 0x8fa2ef},
{0xe284ab, 0xa2f2}, {0xe284ab, 0xa2f2},
{0xe285a0, 0xadb5},
{0xe285a1, 0xadb6},
{0xe285a2, 0xadb7},
{0xe285a3, 0xadb8},
{0xe285a4, 0xadb9},
{0xe285a5, 0xadba},
{0xe285a6, 0xadbb},
{0xe285a7, 0xadbc},
{0xe285a8, 0xadbd},
{0xe285a9, 0xadbe},
{0xe285b0, 0x8ff3f3},
{0xe285b1, 0x8ff3f4},
{0xe285b2, 0x8ff3f5},
{0xe285b3, 0x8ff3f6},
{0xe285b4, 0x8ff3f7},
{0xe285b5, 0x8ff3f8},
{0xe285b6, 0x8ff3f9},
{0xe285b7, 0x8ff3fa},
{0xe285b8, 0x8ff3fb},
{0xe285b9, 0x8ff3fc},
{0xe28690, 0xa2ab}, {0xe28690, 0xa2ab},
{0xe28691, 0xa2ac}, {0xe28691, 0xa2ac},
{0xe28692, 0xa2aa}, {0xe28692, 0xa2aa},
...@@ -418,17 +435,20 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -418,17 +435,20 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe28887, 0xa2e0}, {0xe28887, 0xa2e0},
{0xe28888, 0xa2ba}, {0xe28888, 0xa2ba},
{0xe2888b, 0xa2bb}, {0xe2888b, 0xa2bb},
{0xe28892, 0xa1dd}, {0xe28891, 0xadf4},
{0xe2889a, 0xa2e5}, {0xe2889a, 0xa2e5},
{0xe2889d, 0xa2e7}, {0xe2889d, 0xa2e7},
{0xe2889e, 0xa1e7}, {0xe2889e, 0xa1e7},
{0xe2889f, 0xadf8},
{0xe288a0, 0xa2dc}, {0xe288a0, 0xa2dc},
{0xe288a5, 0xa1c2},
{0xe288a7, 0xa2ca}, {0xe288a7, 0xa2ca},
{0xe288a8, 0xa2cb}, {0xe288a8, 0xa2cb},
{0xe288a9, 0xa2c1}, {0xe288a9, 0xa2c1},
{0xe288aa, 0xa2c0}, {0xe288aa, 0xa2c0},
{0xe288ab, 0xa2e9}, {0xe288ab, 0xa2e9},
{0xe288ac, 0xa2ea}, {0xe288ac, 0xa2ea},
{0xe288ae, 0xadf3},
{0xe288b4, 0xa1e8}, {0xe288b4, 0xa1e8},
{0xe288b5, 0xa2e8}, {0xe288b5, 0xa2e8},
{0xe288bd, 0xa2e6}, {0xe288bd, 0xa2e6},
...@@ -444,7 +464,28 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -444,7 +464,28 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe28a86, 0xa2bc}, {0xe28a86, 0xa2bc},
{0xe28a87, 0xa2bd}, {0xe28a87, 0xa2bd},
{0xe28aa5, 0xa2dd}, {0xe28aa5, 0xa2dd},
{0xe28abf, 0xadf9},
{0xe28c92, 0xa2de}, {0xe28c92, 0xa2de},
{0xe291a0, 0xada1},
{0xe291a1, 0xada2},
{0xe291a2, 0xada3},
{0xe291a3, 0xada4},
{0xe291a4, 0xada5},
{0xe291a5, 0xada6},
{0xe291a6, 0xada7},
{0xe291a7, 0xada8},
{0xe291a8, 0xada9},
{0xe291a9, 0xadaa},
{0xe291aa, 0xadab},
{0xe291ab, 0xadac},
{0xe291ac, 0xadad},
{0xe291ad, 0xadae},
{0xe291ae, 0xadaf},
{0xe291af, 0xadb0},
{0xe291b0, 0xadb1},
{0xe291b1, 0xadb2},
{0xe291b2, 0xadb3},
{0xe291b3, 0xadb4},
{0xe29480, 0xa8a1}, {0xe29480, 0xa8a1},
{0xe29481, 0xa8ac}, {0xe29481, 0xa8ac},
{0xe29482, 0xa8a2}, {0xe29482, 0xa8a2},
...@@ -517,7 +558,8 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -517,7 +558,8 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe38093, 0xa2ae}, {0xe38093, 0xa2ae},
{0xe38094, 0xa1cc}, {0xe38094, 0xa1cc},
{0xe38095, 0xa1cd}, {0xe38095, 0xa1cd},
{0xe3809c, 0xa1c1}, {0xe3809d, 0xade0},
{0xe3809f, 0xade1},
{0xe38181, 0xa4a1}, {0xe38181, 0xa4a1},
{0xe38182, 0xa4a2}, {0xe38182, 0xa4a2},
{0xe38183, 0xa4a3}, {0xe38183, 0xa4a3},
...@@ -695,6 +737,42 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -695,6 +737,42 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe383bc, 0xa1bc}, {0xe383bc, 0xa1bc},
{0xe383bd, 0xa1b3}, {0xe383bd, 0xa1b3},
{0xe383be, 0xa1b4}, {0xe383be, 0xa1b4},
{0xe388b1, 0xadea},
{0xe388b2, 0xadeb},
{0xe388b9, 0xadec},
{0xe38aa4, 0xade5},
{0xe38aa5, 0xade6},
{0xe38aa6, 0xade7},
{0xe38aa7, 0xade8},
{0xe38aa8, 0xade9},
{0xe38c83, 0xadc6},
{0xe38c8d, 0xadca},
{0xe38c94, 0xadc1},
{0xe38c98, 0xadc4},
{0xe38ca2, 0xadc2},
{0xe38ca3, 0xadcc},
{0xe38ca6, 0xadcb},
{0xe38ca7, 0xadc5},
{0xe38cab, 0xadcd},
{0xe38cb6, 0xadc7},
{0xe38cbb, 0xadcf},
{0xe38d89, 0xadc0},
{0xe38d8a, 0xadce},
{0xe38d8d, 0xadc3},
{0xe38d91, 0xadc8},
{0xe38d97, 0xadc9},
{0xe38dbb, 0xaddf},
{0xe38dbc, 0xadef},
{0xe38dbd, 0xadee},
{0xe38dbe, 0xaded},
{0xe38e8e, 0xadd3},
{0xe38e8f, 0xadd4},
{0xe38e9c, 0xadd0},
{0xe38e9d, 0xadd1},
{0xe38e9e, 0xadd2},
{0xe38ea1, 0xadd6},
{0xe38f84, 0xadd5},
{0xe38f8d, 0xade3},
{0xe4b880, 0xb0ec}, {0xe4b880, 0xb0ec},
{0xe4b881, 0xc3fa}, {0xe4b881, 0xc3fa},
{0xe4b882, 0x8fb0a1}, {0xe4b882, 0x8fb0a1},
...@@ -856,6 +934,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -856,6 +934,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe4bbb6, 0xb7ef}, {0xe4bbb6, 0xb7ef},
{0xe4bbb7, 0xd0c3}, {0xe4bbb7, 0xd0c3},
{0xe4bbbb, 0xc7a4}, {0xe4bbbb, 0xc7a4},
{0xe4bbbc, 0x8ff4af},
{0xe4bbbd, 0x8fb0cf}, {0xe4bbbd, 0x8fb0cf},
{0xe4bbbe, 0x8fb0d0}, {0xe4bbbe, 0x8fb0d0},
{0xe4bbbf, 0x8fb0d1}, {0xe4bbbf, 0x8fb0d1},
...@@ -1202,6 +1281,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -1202,6 +1281,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe583af, 0x8fb2c4}, {0xe583af, 0x8fb2c4},
{0xe583b1, 0x8fb2c5}, {0xe583b1, 0x8fb2c5},
{0xe583b2, 0x8fb2d1}, {0xe583b2, 0x8fb2d1},
{0xe583b4, 0x8ff4b0},
{0xe583b5, 0xd1ac}, {0xe583b5, 0xd1ac},
{0xe583b6, 0x8fb2c6}, {0xe583b6, 0x8fb2c6},
{0xe583b9, 0xd1ab}, {0xe583b9, 0xd1ab},
...@@ -1377,6 +1457,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -1377,6 +1457,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe587a7, 0xc2fc}, {0xe587a7, 0xc2fc},
{0xe587a9, 0xd1de}, {0xe587a9, 0xd1de},
{0xe587aa, 0xc6e4}, {0xe587aa, 0xc6e4},
{0xe587ac, 0x8ff4b1},
{0xe587ad, 0xd1df}, {0xe587ad, 0xd1df},
{0xe587ae, 0x8fb3ab}, {0xe587ae, 0x8fb3ab},
{0xe587b0, 0xd1e0}, {0xe587b0, 0xd1e0},
...@@ -1577,6 +1658,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -1577,6 +1658,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe58c83, 0x8fb3fc}, {0xe58c83, 0x8fb3fc},
{0xe58c85, 0xcaf1}, {0xe58c85, 0xcaf1},
{0xe58c86, 0xd2b2}, {0xe58c86, 0xd2b2},
{0xe58c87, 0x8ff4b2},
{0xe58c88, 0xd2b3}, {0xe58c88, 0xd2b3},
{0xe58c8a, 0x8fb3fd}, {0xe58c8a, 0x8fb3fd},
{0xe58c8b, 0x8fb3fe}, {0xe58c8b, 0x8fb3fe},
...@@ -1600,6 +1682,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -1600,6 +1682,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe58ca0, 0xbea2}, {0xe58ca0, 0xbea2},
{0xe58ca1, 0xb6a9}, {0xe58ca1, 0xb6a9},
{0xe58ca3, 0xd2ba}, {0xe58ca3, 0xd2ba},
{0xe58ca4, 0x8ff4b3},
{0xe58ca5, 0x8fb4a9}, {0xe58ca5, 0x8fb4a9},
{0xe58ca7, 0x8fb4aa}, {0xe58ca7, 0x8fb4aa},
{0xe58ca8, 0x8fb4ab}, {0xe58ca8, 0x8fb4ab},
...@@ -1839,6 +1922,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -1839,6 +1922,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe59286, 0xd2f6}, {0xe59286, 0xd2f6},
{0xe59288, 0x8fb5a4}, {0xe59288, 0x8fb5a4},
{0xe59289, 0x8fb5a5}, {0xe59289, 0x8fb5a5},
{0xe5928a, 0x8ff4b5},
{0xe5928b, 0xbaf0}, {0xe5928b, 0xbaf0},
{0xe5928c, 0xcfc2}, {0xe5928c, 0xcfc2},
{0xe5928d, 0x8fb5a6}, {0xe5928d, 0x8fb5a6},
...@@ -2250,6 +2334,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -2250,6 +2334,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe59d90, 0xbac1}, {0xe59d90, 0xbac1},
{0xe59d91, 0xb9a3}, {0xe59d91, 0xb9a3},
{0xe59d92, 0x8fb7c0}, {0xe59d92, 0x8fb7c0},
{0xe59d99, 0x8ff4b6},
{0xe59da1, 0xd4b3}, {0xe59da1, 0xd4b3},
{0xe59da2, 0x8fb7c1}, {0xe59da2, 0x8fb7c1},
{0xe59da4, 0xbaa5}, {0xe59da4, 0xbaa5},
...@@ -2431,6 +2516,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -2431,6 +2516,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe5a297, 0xc1fd}, {0xe5a297, 0xc1fd},
{0xe5a29c, 0xc4c6}, {0xe5a29c, 0xc4c6},
{0xe5a29d, 0x8fb8c7}, {0xe5a29d, 0x8fb8c7},
{0xe5a29e, 0x8ff4b9},
{0xe5a29f, 0xd4d2}, {0xe5a29f, 0xd4d2},
{0xe5a2a0, 0x8fb8c8}, {0xe5a2a0, 0x8fb8c8},
{0xe5a2a1, 0x8fb8c9}, {0xe5a2a1, 0x8fb8c9},
...@@ -2915,6 +3001,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -2915,6 +3001,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe5afa8, 0xdccd}, {0xe5afa8, 0xdccd},
{0xe5afa9, 0xbfb3}, {0xe5afa9, 0xbfb3},
{0xe5afab, 0xd5ed}, {0xe5afab, 0xd5ed},
{0xe5afac, 0x8ff4ba},
{0xe5afae, 0xcec0}, {0xe5afae, 0xcec0},
{0xe5afaf, 0x8fbae5}, {0xe5afaf, 0x8fbae5},
{0xe5afb0, 0xd5ee}, {0xe5afb0, 0xd5ee},
...@@ -3067,6 +3154,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -3067,6 +3154,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe5b3b1, 0x8fbbbf}, {0xe5b3b1, 0x8fbbbf},
{0xe5b3b2, 0x8fbbc0}, {0xe5b3b2, 0x8fbbc0},
{0xe5b3b4, 0x8fbbc1}, {0xe5b3b4, 0x8fbbc1},
{0xe5b3b5, 0x8ff4bb},
{0xe5b3b6, 0xc5e7}, {0xe5b3b6, 0xc5e7},
{0xe5b3ba, 0xd6b8}, {0xe5b3ba, 0xd6b8},
{0xe5b3bb, 0xbdd4}, {0xe5b3bb, 0xbdd4},
...@@ -3111,6 +3199,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -3111,6 +3199,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe5b590, 0xcdf2}, {0xe5b590, 0xcdf2},
{0xe5b591, 0x8fbbd5}, {0xe5b591, 0x8fbbd5},
{0xe5b592, 0xd6c9}, {0xe5b592, 0xd6c9},
{0xe5b593, 0x8ff4bc},
{0xe5b595, 0x8fbbd4}, {0xe5b595, 0x8fbbd4},
{0xe5b599, 0x8fbbd6}, {0xe5b599, 0x8fbbd6},
{0xe5b59c, 0xd6bf}, {0xe5b59c, 0xd6bf},
...@@ -3503,6 +3592,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -3503,6 +3592,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe5beb1, 0x8fbdb6}, {0xe5beb1, 0x8fbdb6},
{0xe5beb3, 0xc6c1}, {0xe5beb3, 0xc6c1},
{0xe5beb4, 0xc4a7}, {0xe5beb4, 0xc4a7},
{0xe5beb7, 0x8ff4be},
{0xe5beb8, 0x8fbdb7}, {0xe5beb8, 0x8fbdb7},
{0xe5beb9, 0xc5b0}, {0xe5beb9, 0xc5b0},
{0xe5bebc, 0xd7d5}, {0xe5bebc, 0xd7d5},
...@@ -3634,6 +3724,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -3634,6 +3724,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe68282, 0x8fbded}, {0xe68282, 0x8fbded},
{0xe68283, 0xd7fd}, {0xe68283, 0xd7fd},
{0xe68284, 0xd8a1}, {0xe68284, 0xd8a1},
{0xe68285, 0x8ff4bf},
{0xe68286, 0x8fbdee}, {0xe68286, 0x8fbdee},
{0xe68288, 0x8fbdef}, {0xe68288, 0x8fbdef},
{0xe68289, 0xbcbd}, {0xe68289, 0xbcbd},
...@@ -3749,6 +3840,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -3749,6 +3840,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe6849c, 0x8fbec4}, {0xe6849c, 0x8fbec4},
{0xe6849e, 0x8fbec5}, {0xe6849e, 0x8fbec5},
{0xe6849f, 0xb4b6}, {0xe6849f, 0xb4b6},
{0xe684a0, 0x8ff4c0},
{0xe684a1, 0xd8bb}, {0xe684a1, 0xd8bb},
{0xe684a2, 0x8fbec6}, {0xe684a2, 0x8fbec6},
{0xe684a7, 0xd8c3}, {0xe684a7, 0xd8c3},
...@@ -4402,6 +4494,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -4402,6 +4494,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe69588, 0xdac3}, {0xe69588, 0xdac3},
{0xe69589, 0x8fc1cc}, {0xe69589, 0x8fc1cc},
{0xe6958d, 0xdac6}, {0xe6958d, 0xdac6},
{0xe6958e, 0x8ff4c1},
{0xe6958f, 0xc9d2}, {0xe6958f, 0xc9d2},
{0xe69590, 0x8fc1cd}, {0xe69590, 0x8fc1cd},
{0xe69591, 0xb5df}, {0xe69591, 0xb5df},
...@@ -4560,6 +4653,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -4560,6 +4653,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe698b6, 0xdae4}, {0xe698b6, 0xdae4},
{0xe698b7, 0x8fc2b0}, {0xe698b7, 0x8fc2b0},
{0xe698b9, 0x8fc2af}, {0xe698b9, 0x8fc2af},
{0xe698bb, 0x8ff4c2},
{0xe698bc, 0xc3eb}, {0xe698bc, 0xc3eb},
{0xe698bf, 0xdba6}, {0xe698bf, 0xdba6},
{0xe69980, 0x8fc2b1}, {0xe69980, 0x8fc2b1},
...@@ -4589,6 +4683,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -4589,6 +4683,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe699a1, 0x8fc2be}, {0xe699a1, 0x8fc2be},
{0xe699a2, 0xdaf1}, {0xe699a2, 0xdaf1},
{0xe699a4, 0xdaed}, {0xe699a4, 0xdaed},
{0xe699a5, 0x8ff4c3},
{0xe699a6, 0xb3a2}, {0xe699a6, 0xb3a2},
{0xe699a7, 0xdaee}, {0xe699a7, 0xdaee},
{0xe699a8, 0xdaef}, {0xe699a8, 0xdaef},
...@@ -4861,6 +4956,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -4861,6 +4956,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe69fbb, 0xbaba}, {0xe69fbb, 0xbaba},
{0xe69fbe, 0xcbef}, {0xe69fbe, 0xcbef},
{0xe69fbf, 0xb3c1}, {0xe69fbf, 0xb3c1},
{0xe6a081, 0x8ff4c6},
{0xe6a082, 0xc4ce}, {0xe6a082, 0xc4ce},
{0xe6a083, 0xc6ca}, {0xe6a083, 0xc6ca},
{0xe6a084, 0xb1c9}, {0xe6a084, 0xb1c9},
...@@ -5248,6 +5344,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -5248,6 +5344,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe6a9a6, 0xdcf5}, {0xe6a9a6, 0xdcf5},
{0xe6a9a7, 0x8fc5b2}, {0xe6a9a7, 0x8fc5b2},
{0xe6a9aa, 0x8fc5b3}, {0xe6a9aa, 0x8fc5b3},
{0xe6a9ab, 0x8ff4c9},
{0xe6a9b1, 0x8fc5b4}, {0xe6a9b1, 0x8fc5b4},
{0xe6a9b2, 0xdcef}, {0xe6a9b2, 0xdcef},
{0xe6a9b3, 0x8fc5b5}, {0xe6a9b3, 0x8fc5b5},
...@@ -5309,6 +5406,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -5309,6 +5406,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe6ab9d, 0x8fc5d4}, {0xe6ab9d, 0x8fc5d4},
{0xe6ab9e, 0xdda9}, {0xe6ab9e, 0xdda9},
{0xe6ab9f, 0xddab}, {0xe6ab9f, 0xddab},
{0xe6aba2, 0x8ff4ca},
{0xe6aba4, 0x8fc5d5}, {0xe6aba4, 0x8fc5d5},
{0xe6aba7, 0x8fc5d6}, {0xe6aba7, 0x8fc5d6},
{0xe6aba8, 0xc8a7}, {0xe6aba8, 0xc8a7},
...@@ -5756,11 +5854,13 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -5756,11 +5854,13 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe6b7af, 0x8fc7e2}, {0xe6b7af, 0x8fc7e2},
{0xe6b7b0, 0x8fc7e3}, {0xe6b7b0, 0x8fc7e3},
{0xe6b7b1, 0xbfbc}, {0xe6b7b1, 0xbfbc},
{0xe6b7b2, 0x8ff4cc},
{0xe6b7b3, 0xbddf}, {0xe6b7b3, 0xbddf},
{0xe6b7b4, 0x8fc7e4}, {0xe6b7b4, 0x8fc7e4},
{0xe6b7b5, 0xcaa5}, {0xe6b7b5, 0xcaa5},
{0xe6b7b6, 0x8fc7e5}, {0xe6b7b6, 0x8fc7e5},
{0xe6b7b7, 0xbaae}, {0xe6b7b7, 0xbaae},
{0xe6b7b8, 0x8ff4cb},
{0xe6b7b9, 0xdebb}, {0xe6b7b9, 0xdebb},
{0xe6b7ba, 0xdec9}, {0xe6b7ba, 0xdec9},
{0xe6b7bb, 0xc5ba}, {0xe6b7bb, 0xc5ba},
...@@ -6070,6 +6170,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -6070,6 +6170,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe780a3, 0x8fc9b1}, {0xe780a3, 0x8fc9b1},
{0xe780a6, 0xc3f5}, {0xe780a6, 0xc3f5},
{0xe780a7, 0xc2ed}, {0xe780a7, 0xc2ed},
{0xe780a8, 0x8ff4cd},
{0xe780ac, 0xc0a5}, {0xe780ac, 0xc0a5},
{0xe780af, 0x8fc9b2}, {0xe780af, 0x8fc9b2},
{0xe780b0, 0xdfd0}, {0xe780b0, 0xdfd0},
...@@ -6135,6 +6236,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -6135,6 +6236,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe782b8, 0xdfda}, {0xe782b8, 0xdfda},
{0xe782b9, 0xc5c0}, {0xe782b9, 0xc5c0},
{0xe782ba, 0xb0d9}, {0xe782ba, 0xb0d9},
{0xe782bb, 0x8ff4ae},
{0xe78388, 0xcef5}, {0xe78388, 0xcef5},
{0xe7838a, 0x8fc9d8}, {0xe7838a, 0x8fc9d8},
{0xe7838b, 0xdfde}, {0xe7838b, 0xdfde},
...@@ -6708,6 +6810,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -6708,6 +6810,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe793bb, 0x8fccfb}, {0xe793bb, 0x8fccfb},
{0xe793bc, 0x8fccfc}, {0xe793bc, 0x8fccfc},
{0xe793bf, 0x8fccfd}, {0xe793bf, 0x8fccfd},
{0xe79481, 0x8ff4d0},
{0xe79483, 0xe1ac}, {0xe79483, 0xe1ac},
{0xe79484, 0xe1ab}, {0xe79484, 0xe1ab},
{0xe79485, 0xe1ad}, {0xe79485, 0xe1ad},
...@@ -6972,6 +7075,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -6972,6 +7075,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe799be, 0xc9b4}, {0xe799be, 0xc9b4},
{0xe79a80, 0xe2a5}, {0xe79a80, 0xe2a5},
{0xe79a81, 0x8fceb5}, {0xe79a81, 0x8fceb5},
{0xe79a82, 0x8ff4d1},
{0xe79a83, 0xe2a6}, {0xe79a83, 0xe2a6},
{0xe79a84, 0xc5aa}, {0xe79a84, 0xc5aa},
{0xe79a85, 0x8fceb6}, {0xe79a85, 0x8fceb6},
...@@ -6991,6 +7095,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -6991,6 +7095,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe79a9b, 0x8fceba}, {0xe79a9b, 0x8fceba},
{0xe79a9c, 0x8fcebb}, {0xe79a9c, 0x8fcebb},
{0xe79a9d, 0x8fcebc}, {0xe79a9d, 0x8fcebc},
{0xe79a9e, 0x8ff4d2},
{0xe79a9f, 0x8fcebd}, {0xe79a9f, 0x8fcebd},
{0xe79aa0, 0x8fcebe}, {0xe79aa0, 0x8fcebe},
{0xe79aa2, 0x8fcebf}, {0xe79aa2, 0x8fcebf},
...@@ -7353,6 +7458,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -7353,6 +7458,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe7a4ab, 0xe3aa}, {0xe7a4ab, 0xe3aa},
{0xe7a4ac, 0xe3a9}, {0xe7a4ac, 0xe3a9},
{0xe7a4ad, 0x8fd0c7}, {0xe7a4ad, 0x8fd0c7},
{0xe7a4b0, 0x8ff4d4},
{0xe7a4b1, 0x8fd0c8}, {0xe7a4b1, 0x8fd0c8},
{0xe7a4b4, 0x8fd0c9}, {0xe7a4b4, 0x8fd0c9},
{0xe7a4b5, 0x8fd0ca}, {0xe7a4b5, 0x8fd0ca},
...@@ -7630,6 +7736,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -7630,6 +7736,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe7aba3, 0xbdd7}, {0xe7aba3, 0xbdd7},
{0xe7aba5, 0xc6b8}, {0xe7aba5, 0xc6b8},
{0xe7aba6, 0xe3f0}, {0xe7aba6, 0xe3f0},
{0xe7aba7, 0x8ff4d9},
{0xe7aba8, 0x8fd1ea}, {0xe7aba8, 0x8fd1ea},
{0xe7aba9, 0x8fd1eb}, {0xe7aba9, 0x8fd1eb},
{0xe7abaa, 0xc3a8}, {0xe7abaa, 0xc3a8},
...@@ -8084,6 +8191,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -8084,6 +8191,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe7b69d, 0x8fd3fe}, {0xe7b69d, 0x8fd3fe},
{0xe7b69e, 0x8fd4a1}, {0xe7b69e, 0x8fd4a1},
{0xe7b69f, 0xe5c6}, {0xe7b69f, 0xe5c6},
{0xe7b6a0, 0x8ff4dc},
{0xe7b6a2, 0xe5c2}, {0xe7b6a2, 0xe5c2},
{0xe7b6a3, 0xe5bc}, {0xe7b6a3, 0xe5bc},
{0xe7b6a6, 0x8fd4a2}, {0xe7b6a6, 0x8fd4a2},
...@@ -8124,6 +8232,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -8124,6 +8232,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe7b791, 0xced0}, {0xe7b791, 0xced0},
{0xe7b792, 0xbdef}, {0xe7b792, 0xbdef},
{0xe7b795, 0xe5ee}, {0xe7b795, 0xe5ee},
{0xe7b796, 0x8ff4dd},
{0xe7b797, 0x8fd4b1}, {0xe7b797, 0x8fd4b1},
{0xe7b798, 0xe5c8}, {0xe7b798, 0xe5c8},
{0xe7b799, 0x8fd4b2}, {0xe7b799, 0x8fd4b2},
...@@ -8925,6 +9034,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -8925,6 +9034,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe88d96, 0x8fd7fb}, {0xe88d96, 0x8fd7fb},
{0xe88d97, 0x8fd7fc}, {0xe88d97, 0x8fd7fc},
{0xe88d98, 0xc1f1}, {0xe88d98, 0xc1f1},
{0xe88da2, 0x8ff4df},
{0xe88db0, 0x8fd7fd}, {0xe88db0, 0x8fd7fd},
{0xe88db3, 0xe8ba}, {0xe88db3, 0xe8ba},
{0xe88db5, 0xe8bb}, {0xe88db5, 0xe8bb},
...@@ -9262,6 +9372,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -9262,6 +9372,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe896ad, 0x8fd9f4}, {0xe896ad, 0x8fd9f4},
{0xe896ae, 0xccf9}, {0xe896ae, 0xccf9},
{0xe896af, 0xbdf2}, {0xe896af, 0xbdf2},
{0xe896b0, 0x8ff4e1},
{0xe896b4, 0x8fd9e7}, {0xe896b4, 0x8fd9e7},
{0xe896b6, 0x8fd9e8}, {0xe896b6, 0x8fd9e8},
{0xe896b7, 0x8fd9e9}, {0xe896b7, 0x8fd9e9},
...@@ -9600,6 +9711,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -9600,6 +9711,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe8a083, 0x8fdbe9}, {0xe8a083, 0x8fdbe9},
{0xe8a085, 0xeaa4}, {0xe8a085, 0xeaa4},
{0xe8a086, 0x8fdbea}, {0xe8a086, 0x8fdbea},
{0xe8a087, 0x8ff4e4},
{0xe8a089, 0x8fdbeb}, {0xe8a089, 0x8fdbeb},
{0xe8a08a, 0x8fdbec}, {0xe8a08a, 0x8fdbec},
{0xe8a08b, 0x8fdbed}, {0xe8a08b, 0x8fdbed},
...@@ -10164,6 +10276,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -10164,6 +10276,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe8adbc, 0x8fded5}, {0xe8adbc, 0x8fded5},
{0xe8adbd, 0xeca5}, {0xe8adbd, 0xeca5},
{0xe8adbe, 0x8fded6}, {0xe8adbe, 0x8fded6},
{0xe8adbf, 0x8ff4e6},
{0xe8ae80, 0xeca6}, {0xe8ae80, 0xeca6},
{0xe8ae81, 0x8fded7}, {0xe8ae81, 0x8fded7},
{0xe8ae83, 0xbbbe}, {0xe8ae83, 0xbbbe},
...@@ -10319,6 +10432,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -10319,6 +10432,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe8b3af, 0x8fdfb8}, {0xe8b3af, 0x8fdfb8},
{0xe8b3b0, 0x8fdfb9}, {0xe8b3b0, 0x8fdfb9},
{0xe8b3b2, 0x8fdfba}, {0xe8b3b2, 0x8fdfba},
{0xe8b3b4, 0x8ff4e7},
{0xe8b3b5, 0x8fdfbb}, {0xe8b3b5, 0x8fdfbb},
{0xe8b3b7, 0x8fdfbc}, {0xe8b3b7, 0x8fdfbc},
{0xe8b3b8, 0x8fdfbd}, {0xe8b3b8, 0x8fdfbd},
...@@ -10359,6 +10473,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -10359,6 +10473,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe8b5b1, 0xece1}, {0xe8b5b1, 0xece1},
{0xe8b5b3, 0xece2}, {0xe8b5b3, 0xece2},
{0xe8b5b4, 0xc9eb}, {0xe8b5b4, 0xc9eb},
{0xe8b5b6, 0x8ff4e8},
{0xe8b5b7, 0xb5af}, {0xe8b5b7, 0xb5af},
{0xe8b5bf, 0x8fdfca}, {0xe8b5bf, 0x8fdfca},
{0xe8b681, 0xece3}, {0xe8b681, 0xece3},
...@@ -10882,6 +10997,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -10882,6 +10997,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe9839b, 0xeebe}, {0xe9839b, 0xeebe},
{0xe9839c, 0x8fe2a9}, {0xe9839c, 0x8fe2a9},
{0xe9839d, 0x8fe2aa}, {0xe9839d, 0x8fe2aa},
{0xe9839e, 0x8ff4ec},
{0xe9839f, 0x8fe2ab}, {0xe9839f, 0x8fe2ab},
{0xe983a1, 0xb7b4}, {0xe983a1, 0xb7b4},
{0xe983a2, 0xeebb}, {0xe983a2, 0xeebb},
...@@ -10909,6 +11025,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -10909,6 +11025,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe98490, 0x8fe2bb}, {0xe98490, 0x8fe2bb},
{0xe98492, 0xeec0}, {0xe98492, 0xeec0},
{0xe98494, 0x8fe2bc}, {0xe98494, 0x8fe2bc},
{0xe98495, 0x8ff4ee},
{0xe98496, 0x8fe2bd}, {0xe98496, 0x8fe2bd},
{0xe98497, 0x8fe2be}, {0xe98497, 0x8fe2be},
{0xe98498, 0x8fe2bf}, {0xe98498, 0x8fe2bf},
...@@ -11482,6 +11599,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -11482,6 +11599,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe9968e, 0x8fe6a6}, {0xe9968e, 0x8fe6a6},
{0xe9968f, 0xb1bc}, {0xe9968f, 0xb1bc},
{0xe99691, 0xb4d7}, {0xe99691, 0xb4d7},
{0xe99692, 0x8ff4f1},
{0xe99693, 0xb4d6}, {0xe99693, 0xb4d6},
{0xe99694, 0xefdc}, {0xe99694, 0xefdc},
{0xe99696, 0xefdd}, {0xe99696, 0xefdd},
...@@ -11730,6 +11848,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -11730,6 +11848,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe99cb3, 0x8fe7ac}, {0xe99cb3, 0x8fe7ac},
{0xe99cb8, 0xdbb1}, {0xe99cb8, 0xdbb1},
{0xe99cb9, 0xf0c8}, {0xe99cb9, 0xf0c8},
{0xe99cbb, 0x8ff4f4},
{0xe99cbd, 0xf0c9}, {0xe99cbd, 0xf0c9},
{0xe99cbe, 0xf0ca}, {0xe99cbe, 0xf0ca},
{0xe99d81, 0x8fe7ad}, {0xe99d81, 0x8fe7ad},
...@@ -11740,8 +11859,10 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -11740,8 +11859,10 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe99d88, 0xf0cd}, {0xe99d88, 0xf0cd},
{0xe99d89, 0xf0cf}, {0xe99d89, 0xf0cf},
{0xe99d8a, 0x8fe7af}, {0xe99d8a, 0x8fe7af},
{0xe99d8d, 0x8ff4f5},
{0xe99d8e, 0x8fe7b0}, {0xe99d8e, 0x8fe7b0},
{0xe99d8f, 0x8fe7b1}, {0xe99d8f, 0x8fe7b1},
{0xe99d91, 0x8ff4f6},
{0xe99d92, 0xc0c4}, {0xe99d92, 0xc0c4},
{0xe99d95, 0x8fe7b2}, {0xe99d95, 0x8fe7b2},
{0xe99d96, 0xccf7}, {0xe99d96, 0xccf7},
...@@ -12057,6 +12178,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -12057,6 +12178,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe9a699, 0xb9e1}, {0xe9a699, 0xb9e1},
{0xe9a69b, 0x8fe8f7}, {0xe9a69b, 0x8fe8f7},
{0xe9a69d, 0x8fe8f8}, {0xe9a69d, 0x8fe8f8},
{0xe9a69e, 0x8ff4fa},
{0xe9a69f, 0x8fe8f9}, {0xe9a69f, 0x8fe8f9},
{0xe9a6a5, 0xf1c6}, {0xe9a6a5, 0xf1c6},
{0xe9a6a6, 0x8fe8fa}, {0xe9a6a6, 0x8fe8fa},
...@@ -12207,6 +12329,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -12207,6 +12329,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe9ab96, 0x8fe9ea}, {0xe9ab96, 0x8fe9ea},
{0xe9ab97, 0x8fe9eb}, {0xe9ab97, 0x8fe9eb},
{0xe9ab98, 0xb9e2}, {0xe9ab98, 0xb9e2},
{0xe9ab99, 0x8ff4fb},
{0xe9ab9b, 0x8fe9ec}, {0xe9ab9b, 0x8fe9ec},
{0xe9ab9c, 0x8fe9ed}, {0xe9ab9c, 0x8fe9ed},
{0xe9ab9e, 0xf1f4}, {0xe9ab9e, 0xf1f4},
...@@ -12313,6 +12436,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -12313,6 +12436,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe9adad, 0x8feaca}, {0xe9adad, 0x8feaca},
{0xe9adae, 0x8feacb}, {0xe9adae, 0x8feacb},
{0xe9adaf, 0xcfa5}, {0xe9adaf, 0xcfa5},
{0xe9adb2, 0x8ff4fc},
{0xe9adb3, 0x8feacc}, {0xe9adb3, 0x8feacc},
{0xe9adb4, 0xf2b7}, {0xe9adb4, 0xf2b7},
{0xe9adb5, 0x8feacd}, {0xe9adb5, 0x8feacd},
...@@ -12722,6 +12846,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -12722,6 +12846,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe9bb8e, 0xf3d5}, {0xe9bb8e, 0xf3d5},
{0xe9bb8f, 0xf3d6}, {0xe9bb8f, 0xf3d6},
{0xe9bb90, 0xf3d7}, {0xe9bb90, 0xf3d7},
{0xe9bb91, 0x8ff4fe},
{0xe9bb92, 0xb9f5}, {0xe9bb92, 0xb9f5},
{0xe9bb94, 0xf3d8}, {0xe9bb94, 0xf3d8},
{0xe9bb95, 0x8fecf4}, {0xe9bb95, 0x8fecf4},
...@@ -12852,16 +12977,53 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -12852,16 +12977,53 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xe9bea2, 0x8fede1}, {0xe9bea2, 0x8fede1},
{0xe9bea3, 0x8fede2}, {0xe9bea3, 0x8fede2},
{0xe9bea5, 0x8fede3}, {0xe9bea5, 0x8fede3},
{0xefa4a9, 0x8ff4c5},
{0xefa79c, 0x8ff4f2},
{0xefa88e, 0x8ff4b4},
{0xefa88f, 0x8ff4b7},
{0xefa890, 0x8ff4b8},
{0xefa891, 0x8ff4bd},
{0xefa892, 0x8ff4c4},
{0xefa893, 0x8ff4c7},
{0xefa894, 0x8ff4c8},
{0xefa895, 0x8ff4ce},
{0xefa896, 0x8ff4cf},
{0xefa897, 0x8ff4d3},
{0xefa898, 0x8ff4d5},
{0xefa899, 0x8ff4d6},
{0xefa89a, 0x8ff4d7},
{0xefa89b, 0x8ff4d8},
{0xefa89c, 0x8ff4da},
{0xefa89d, 0x8ff4db},
{0xefa89e, 0x8ff4de},
{0xefa89f, 0x8ff4e0},
{0xefa8a0, 0x8ff4e2},
{0xefa8a1, 0x8ff4e3},
{0xefa8a2, 0x8ff4e5},
{0xefa8a3, 0x8ff4e9},
{0xefa8a4, 0x8ff4ea},
{0xefa8a5, 0x8ff4eb},
{0xefa8a6, 0x8ff4ed},
{0xefa8a7, 0x8ff4ef},
{0xefa8a8, 0x8ff4f0},
{0xefa8a9, 0x8ff4f3},
{0xefa8aa, 0x8ff4f7},
{0xefa8ab, 0x8ff4f8},
{0xefa8ac, 0x8ff4f9},
{0xefa8ad, 0x8ff4fd},
{0xefbc81, 0xa1aa}, {0xefbc81, 0xa1aa},
{0xefbc82, 0x8ff4aa},
{0xefbc83, 0xa1f4}, {0xefbc83, 0xa1f4},
{0xefbc84, 0xa1f0}, {0xefbc84, 0xa1f0},
{0xefbc85, 0xa1f3}, {0xefbc85, 0xa1f3},
{0xefbc86, 0xa1f5}, {0xefbc86, 0xa1f5},
{0xefbc87, 0x8ff4a9},
{0xefbc88, 0xa1ca}, {0xefbc88, 0xa1ca},
{0xefbc89, 0xa1cb}, {0xefbc89, 0xa1cb},
{0xefbc8a, 0xa1f6}, {0xefbc8a, 0xa1f6},
{0xefbc8b, 0xa1dc}, {0xefbc8b, 0xa1dc},
{0xefbc8c, 0xa1a4}, {0xefbc8c, 0xa1a4},
{0xefbc8d, 0xa1dd},
{0xefbc8e, 0xa1a5}, {0xefbc8e, 0xa1a5},
{0xefbc8f, 0xa1bf}, {0xefbc8f, 0xa1bf},
{0xefbc90, 0xa3b0}, {0xefbc90, 0xa3b0},
...@@ -12908,6 +13070,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -12908,6 +13070,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xefbcb9, 0xa3d9}, {0xefbcb9, 0xa3d9},
{0xefbcba, 0xa3da}, {0xefbcba, 0xa3da},
{0xefbcbb, 0xa1ce}, {0xefbcbb, 0xa1ce},
{0xefbcbc, 0xa1c0},
{0xefbcbd, 0xa1cf}, {0xefbcbd, 0xa1cf},
{0xefbcbe, 0xa1b0}, {0xefbcbe, 0xa1b0},
{0xefbcbf, 0xa1b2}, {0xefbcbf, 0xa1b2},
...@@ -12941,6 +13104,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -12941,6 +13104,7 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xefbd9b, 0xa1d0}, {0xefbd9b, 0xa1d0},
{0xefbd9c, 0xa1c3}, {0xefbd9c, 0xa1c3},
{0xefbd9d, 0xa1d1}, {0xefbd9d, 0xa1d1},
{0xefbd9e, 0xa1c1},
{0xefbda1, 0x8ea1}, {0xefbda1, 0x8ea1},
{0xefbda2, 0x8ea2}, {0xefbda2, 0x8ea2},
{0xefbda3, 0x8ea3}, {0xefbda3, 0x8ea3},
...@@ -13004,6 +13168,10 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = { ...@@ -13004,6 +13168,10 @@ static pg_utf_to_local ULmapEUC_JP[ 13007 ] = {
{0xefbe9d, 0x8edd}, {0xefbe9d, 0x8edd},
{0xefbe9e, 0x8ede}, {0xefbe9e, 0x8ede},
{0xefbe9f, 0x8edf}, {0xefbe9f, 0x8edf},
{0xefbfa0, 0xa1f1},
{0xefbfa1, 0xa1f2},
{0xefbfa2, 0xa2cc},
{0xefbfa3, 0xa1b1}, {0xefbfa3, 0xa1b1},
{0xefbfa4, 0x8fa2c3},
{0xefbfa5, 0xa1ef} {0xefbfa5, 0xa1ef}
}; };
This source diff could not be displayed because it is too large. You can view the blob instead.
static pg_utf_to_local ULmapSJIS[ 7389 ] = { static pg_utf_to_local ULmapSJIS[ 7398 ] = {
{0xc19c, 0x815f},
{0xc2a2, 0x8191},
{0xc2a3, 0x8192},
{0xc2a5, 0x5c},
{0xc2a7, 0x8198}, {0xc2a7, 0x8198},
{0xc2a8, 0x814e}, {0xc2a8, 0x814e},
{0xc2ac, 0x81ca},
{0xc2b0, 0x818b}, {0xc2b0, 0x818b},
{0xc2b1, 0x817d}, {0xc2b1, 0x817d},
{0xc2b4, 0x814c}, {0xc2b4, 0x814c},
...@@ -123,6 +128,7 @@ static pg_utf_to_local ULmapSJIS[ 7389 ] = { ...@@ -123,6 +128,7 @@ static pg_utf_to_local ULmapSJIS[ 7389 ] = {
{0xd191, 0x8476}, {0xd191, 0x8476},
{0xe28090, 0x815d}, {0xe28090, 0x815d},
{0xe28095, 0x815c}, {0xe28095, 0x815c},
{0xe28096, 0x8161},
{0xe28098, 0x8165}, {0xe28098, 0x8165},
{0xe28099, 0x8166}, {0xe28099, 0x8166},
{0xe2809c, 0x8167}, {0xe2809c, 0x8167},
...@@ -135,6 +141,7 @@ static pg_utf_to_local ULmapSJIS[ 7389 ] = { ...@@ -135,6 +141,7 @@ static pg_utf_to_local ULmapSJIS[ 7389 ] = {
{0xe280b2, 0x818c}, {0xe280b2, 0x818c},
{0xe280b3, 0x818d}, {0xe280b3, 0x818d},
{0xe280bb, 0x81a6}, {0xe280bb, 0x81a6},
{0xe280be, 0x7e},
{0xe28483, 0x818e}, {0xe28483, 0x818e},
{0xe28496, 0xfa59}, {0xe28496, 0xfa59},
{0xe284a1, 0xfa5a}, {0xe284a1, 0xfa5a},
...@@ -172,6 +179,7 @@ static pg_utf_to_local ULmapSJIS[ 7389 ] = { ...@@ -172,6 +179,7 @@ static pg_utf_to_local ULmapSJIS[ 7389 ] = {
{0xe28888, 0x81b8}, {0xe28888, 0x81b8},
{0xe2888b, 0x81b9}, {0xe2888b, 0x81b9},
{0xe28891, 0x8794}, {0xe28891, 0x8794},
{0xe28892, 0x817c},
{0xe2889a, 0x81e3}, {0xe2889a, 0x81e3},
{0xe2889d, 0x81e5}, {0xe2889d, 0x81e5},
{0xe2889e, 0x8187}, {0xe2889e, 0x8187},
...@@ -294,6 +302,7 @@ static pg_utf_to_local ULmapSJIS[ 7389 ] = { ...@@ -294,6 +302,7 @@ static pg_utf_to_local ULmapSJIS[ 7389 ] = {
{0xe38093, 0x81ac}, {0xe38093, 0x81ac},
{0xe38094, 0x816b}, {0xe38094, 0x816b},
{0xe38095, 0x816c}, {0xe38095, 0x816c},
{0xe3809c, 0x8160},
{0xe3809d, 0x8780}, {0xe3809d, 0x8780},
{0xe3809f, 0x8781}, {0xe3809f, 0x8781},
{0xe38181, 0x829f}, {0xe38181, 0x829f},
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* WIN1250 client encoding support contributed by Pavel Behal * WIN1250 client encoding support contributed by Pavel Behal
* SJIS UDC (NEC selection IBM kanji) support contributed by Eiji Tokuya * SJIS UDC (NEC selection IBM kanji) support contributed by Eiji Tokuya
* *
* $Id: conv.c,v 1.35 2001/11/05 17:46:30 momjian Exp $ * $Id: conv.c,v 1.36 2002/03/05 05:52:43 momjian Exp $
* *
* *
*/ */
...@@ -56,6 +56,20 @@ ...@@ -56,6 +56,20 @@
#include "Unicode/sjis_to_utf8.map" #include "Unicode/sjis_to_utf8.map"
#include "Unicode/utf8_to_big5.map" #include "Unicode/utf8_to_big5.map"
#include "Unicode/big5_to_utf8.map" #include "Unicode/big5_to_utf8.map"
#include "Unicode/utf8_to_gbk.map"
#include "Unicode/gbk_to_utf8.map"
#include "Unicode/utf8_to_uhc.map"
#include "Unicode/uhc_to_utf8.map"
#include "Unicode/utf8_to_johab.map"
#include "Unicode/johab_to_utf8.map"
#include "Unicode/utf8_to_tcvn.map"
#include "Unicode/tcvn_to_utf8.map"
#include "Unicode/utf8_to_win1250.map"
#include "Unicode/win1250_to_utf8.map"
#include "Unicode/utf8_to_win1256.map"
#include "Unicode/win1256_to_utf8.map"
#include "Unicode/utf8_to_win874.map"
#include "Unicode/win874_to_utf8.map"
/* Cyrillic charset conversion */ /* Cyrillic charset conversion */
#include "Unicode/alt_to_utf8.map" #include "Unicode/alt_to_utf8.map"
#include "Unicode/koi8r_to_utf8.map" #include "Unicode/koi8r_to_utf8.map"
...@@ -1666,6 +1680,153 @@ big5_to_utf(unsigned char *euc, unsigned char *utf, int len) ...@@ -1666,6 +1680,153 @@ big5_to_utf(unsigned char *euc, unsigned char *utf, int len)
sizeof(LUmapBIG5) / sizeof(pg_local_to_utf), PG_BIG5, len); sizeof(LUmapBIG5) / sizeof(pg_local_to_utf), PG_BIG5, len);
} }
/*
* UTF-8 ---> GBK
*/
static void
utf_to_gbk(unsigned char *utf, unsigned char *euc, int len)
{
utf_to_local(utf, euc, ULmapGBK,
sizeof(ULmapGBK) / sizeof(pg_utf_to_local), len);
}
/*
* GBK ---> UTF-8
*/
static void
gbk_to_utf(unsigned char *euc, unsigned char *utf, int len)
{
local_to_utf(euc, utf, LUmapGBK,
sizeof(LUmapGBK) / sizeof(pg_local_to_utf), PG_GBK, len);
}
/*
* UTF-8 ---> UHC
*/
static void
utf_to_uhc(unsigned char *utf, unsigned char *euc, int len)
{
utf_to_local(utf, euc, ULmapUHC,
sizeof(ULmapUHC) / sizeof(pg_utf_to_local), len);
}
/*
* UHC ---> UTF-8
*/
static void
uhc_to_utf(unsigned char *euc, unsigned char *utf, int len)
{
local_to_utf(euc, utf, LUmapUHC,
sizeof(LUmapUHC) / sizeof(pg_local_to_utf), PG_UHC, len);
}
/*
* UTF-8 ---> JOHAB
*/
static void
utf_to_johab(unsigned char *utf, unsigned char *euc, int len)
{
utf_to_local(utf, euc, ULmapJOHAB,
sizeof(ULmapJOHAB) / sizeof(pg_utf_to_local), len);
}
/*
* JOHAB ---> UTF-8
*/
static void
johab_to_utf(unsigned char *euc, unsigned char *utf, int len)
{
local_to_utf(euc, utf, LUmapJOHAB,
sizeof(LUmapJOHAB) / sizeof(pg_local_to_utf), PG_JOHAB, len);
}
/*
* UTF-8 ---> WIN1250
*/
static void
utf_to_win1250(unsigned char *utf, unsigned char *euc, int len)
{
utf_to_local(utf, euc, ULmapWIN1250,
sizeof(ULmapWIN1250) / sizeof(pg_utf_to_local), len);
}
/*
* WIN1250 ---> UTF-8
*/
static void
win1250_to_utf(unsigned char *euc, unsigned char *utf, int len)
{
local_to_utf(euc, utf, LUmapWIN1250,
sizeof(LUmapWIN1250) / sizeof(pg_local_to_utf), PG_WIN1250, len);
}
/*
* UTF-8 ---> WIN1256
*/
static void
utf_to_win1256(unsigned char *utf, unsigned char *euc, int len)
{
utf_to_local(utf, euc, ULmapWIN1256,
sizeof(ULmapWIN1256) / sizeof(pg_utf_to_local), len);
}
/*
* WIN1256 ---> UTF-8
*/
static void
win1256_to_utf(unsigned char *euc, unsigned char *utf, int len)
{
local_to_utf(euc, utf, LUmapWIN1256,
sizeof(LUmapWIN1256) / sizeof(pg_local_to_utf), PG_WIN1256, len);
}
/*
* UTF-8 ---> TCVN
*/
static void
utf_to_tcvn(unsigned char *utf, unsigned char *euc, int len)
{
utf_to_local(utf, euc, ULmapTCVN,
sizeof(ULmapTCVN) / sizeof(pg_utf_to_local), len);
}
/*
* TCVN ---> UTF-8
*/
static void
tcvn_to_utf(unsigned char *euc, unsigned char *utf, int len)
{
local_to_utf(euc, utf, LUmapTCVN,
sizeof(LUmapTCVN) / sizeof(pg_local_to_utf), PG_TCVN, len);
}
/*
* UTF-8 ---> WIN874
*/
static void
utf_to_win874(unsigned char *utf, unsigned char *euc, int len)
{
utf_to_local(utf, euc, ULmapWIN874,
sizeof(ULmapWIN874) / sizeof(pg_utf_to_local), len);
}
/*
* WIN874 ---> UTF-8
*/
static void
win874_to_utf(unsigned char *euc, unsigned char *utf, int len)
{
local_to_utf(euc, utf, LUmapWIN874,
sizeof(LUmapWIN874) / sizeof(pg_local_to_utf), PG_WIN874, len);
}
/* ---------- /* ----------
* Encoding conversion routines * Encoding conversion routines
* *
...@@ -1689,6 +1850,9 @@ pg_enconv pg_enconv_tbl[] = ...@@ -1689,6 +1850,9 @@ pg_enconv pg_enconv_tbl[] =
{ {
PG_EUC_TW, euc_tw2mic, mic2euc_tw, euc_tw_to_utf, utf_to_euc_tw PG_EUC_TW, euc_tw2mic, mic2euc_tw, euc_tw_to_utf, utf_to_euc_tw
}, },
{
PG_JOHAB, 0, 0, johab_to_utf, utf_to_johab
},
{ {
PG_UTF8, 0, 0, 0, 0 PG_UTF8, 0, 0, 0, 0
}, },
...@@ -1725,6 +1889,15 @@ pg_enconv pg_enconv_tbl[] = ...@@ -1725,6 +1889,15 @@ pg_enconv pg_enconv_tbl[] =
{ {
PG_LATIN10, 0, 0, iso8859_16_to_utf, utf_to_iso8859_16 PG_LATIN10, 0, 0, iso8859_16_to_utf, utf_to_iso8859_16
}, },
{
PG_WIN1256, 0, 0, win1256_to_utf, utf_to_win1256
},
{
PG_TCVN, 0, 0, tcvn_to_utf, utf_to_tcvn
},
{
PG_WIN874, 0, 0, win874_to_utf, utf_to_win874
},
{ {
PG_KOI8R, koi8r2mic, mic2koi8r, KOI8R_to_utf, utf_to_KOI8R PG_KOI8R, koi8r2mic, mic2koi8r, KOI8R_to_utf, utf_to_KOI8R
}, },
...@@ -1754,7 +1927,13 @@ pg_enconv pg_enconv_tbl[] = ...@@ -1754,7 +1927,13 @@ pg_enconv pg_enconv_tbl[] =
PG_BIG5, big52mic, mic2big5, big5_to_utf, utf_to_big5 PG_BIG5, big52mic, mic2big5, big5_to_utf, utf_to_big5
}, },
{ {
PG_WIN1250, win12502mic, mic2win1250, 0, 0 PG_GBK, 0, 0, gbk_to_utf, utf_to_gbk
},
{
PG_UHC, 0, 0, uhc_to_utf, utf_to_uhc
},
{
PG_WIN1250, win12502mic, mic2win1250, win1250_to_utf, utf_to_win1250
}, },
}; };
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* Encoding names and routines for work with it. All * Encoding names and routines for work with it. All
* in this file is shared bedween FE and BE. * in this file is shared bedween FE and BE.
* *
* $Id: encnames.c,v 1.6 2001/10/28 06:25:56 momjian Exp $ * $Id: encnames.c,v 1.7 2002/03/05 05:52:44 momjian Exp $
*/ */
#ifdef FRONTEND #ifdef FRONTEND
#include "postgres_fe.h" #include "postgres_fe.h"
...@@ -36,6 +36,9 @@ ...@@ -36,6 +36,9 @@
*/ */
pg_encname pg_encname_tbl[] = pg_encname pg_encname_tbl[] =
{ {
{
"abc", PG_TCVN
}, /* alias for TCVN */
{ {
"alt", PG_ALT "alt", PG_ALT
}, /* IBM866 */ }, /* IBM866 */
...@@ -52,11 +55,16 @@ pg_encname pg_encname_tbl[] = ...@@ -52,11 +55,16 @@ pg_encname pg_encname_tbl[] =
* for Japanese, stdandard OSF */ * for Japanese, stdandard OSF */
{ {
"euckr", PG_EUC_KR "euckr", PG_EUC_KR
}, /* EUC-KR; RFC1557,Choi */ }, /* EUC-KR; Extended Unix Code for
* Korean , KS X 1001 standard */
{ {
"euctw", PG_EUC_TW "euctw", PG_EUC_TW
}, /* EUC-TW; Extended Unix Code for }, /* EUC-TW; Extended Unix Code for
* traditional Chinese */ * traditional Chinese */
{
"gbk", PG_GBK
}, /* GBK; Chinese Windows CodePage 936
* simplified Chinese */
{ {
"iso88591", PG_LATIN1 "iso88591", PG_LATIN1
}, /* ISO-8859-1; RFC1345,KXS2 */ }, /* ISO-8859-1; RFC1345,KXS2 */
...@@ -99,6 +107,10 @@ pg_encname pg_encname_tbl[] = ...@@ -99,6 +107,10 @@ pg_encname pg_encname_tbl[] =
{ {
"iso88599", PG_LATIN5 "iso88599", PG_LATIN5
}, /* ISO-8859-9; RFC1345,KXS2 */ }, /* ISO-8859-9; RFC1345,KXS2 */
{
"johab", PG_JOHAB
}, /* JOHAB; Extended Unix Code for
* simplified Chinese */
{ {
"koi8", PG_KOI8R "koi8", PG_KOI8R
}, /* _dirty_ alias for KOI8-R (backward }, /* _dirty_ alias for KOI8-R (backward
...@@ -151,12 +163,24 @@ pg_encname pg_encname_tbl[] = ...@@ -151,12 +163,24 @@ pg_encname pg_encname_tbl[] =
{ {
"sqlascii", PG_SQL_ASCII "sqlascii", PG_SQL_ASCII
}, },
{
"tcvn", PG_TCVN
}, /* TCVN; Vietnamese TCVN-5712 */
{
"tcvn5712",PG_TCVN
}, /* alias for TCVN */
{
"uhc", PG_UHC
}, /* UHC; Korean Windows CodePage 949 */
{ {
"unicode", PG_UTF8 "unicode", PG_UTF8
}, /* alias for UTF-8 */ }, /* alias for UTF-8 */
{ {
"utf8", PG_UTF8 "utf8", PG_UTF8
}, /* UTF-8; RFC2279 */ }, /* UTF-8; RFC2279 */
{
"vscii", PG_TCVN
}, /* alias for TCVN */
{ {
"win", PG_WIN1251 "win", PG_WIN1251
}, /* _dirty_ alias for windows-1251 }, /* _dirty_ alias for windows-1251
...@@ -167,12 +191,54 @@ pg_encname pg_encname_tbl[] = ...@@ -167,12 +191,54 @@ pg_encname pg_encname_tbl[] =
{ {
"win1251", PG_WIN1251 "win1251", PG_WIN1251
}, /* alias for Windows-1251 */ }, /* alias for Windows-1251 */
{
"win1256", PG_WIN1256
}, /* alias for Windows-1256 */
{
"win1258", PG_TCVN
}, /* alias for Windows-1258 */
{
"win874", PG_WIN874
}, /* alias for Windows-874 */
{
"win932", PG_SJIS
}, /* alias for Shift_JIS */
{
"win936", PG_GBK
}, /* alias for GBK */
{
"win949", PG_UHC
}, /* alias for UHC */
{
"win950", PG_BIG5
}, /* alias for BIG5 */
{ {
"windows1250", PG_WIN1250 "windows1250", PG_WIN1250
}, /* Windows-1251; Microsoft */ }, /* Windows-1251; Microsoft */
{ {
"windows1251", PG_WIN1251 "windows1251", PG_WIN1251
}, /* Windows-1251; Microsoft */ }, /* Windows-1251; Microsoft */
{
"windows1256", PG_WIN1256
}, /* Windows-1256; Microsoft */
{
"windows1258", PG_TCVN
}, /* Windows-1258; Microsoft */
{
"windows874", PG_WIN874
}, /* Windows-874; Microsoft */
{
"windows932", PG_SJIS
}, /* alias for Shift_JIS */
{
"windows936", PG_GBK
}, /* alias for GBK */
{
"windows949", PG_UHC
}, /* alias for UHC */
{
"windows950", PG_BIG5
}, /* alias for BIG5 */
{ {
NULL, 0 NULL, 0
...@@ -204,6 +270,9 @@ pg_enc2name pg_enc2name_tbl[] = ...@@ -204,6 +270,9 @@ pg_enc2name pg_enc2name_tbl[] =
{ {
"EUC_TW", PG_EUC_TW "EUC_TW", PG_EUC_TW
}, },
{
"JOHAB", PG_JOHAB
},
{ {
"UNICODE", PG_UTF8 "UNICODE", PG_UTF8
}, },
...@@ -240,6 +309,15 @@ pg_enc2name pg_enc2name_tbl[] = ...@@ -240,6 +309,15 @@ pg_enc2name pg_enc2name_tbl[] =
{ {
"LATIN10", PG_LATIN10 "LATIN10", PG_LATIN10
}, },
{
"WIN1256", PG_WIN1256
},
{
"TCVN", PG_TCVN
},
{
"WIN874", PG_WIN874
},
{ {
"KOI8", PG_KOI8R "KOI8", PG_KOI8R
}, },
...@@ -267,6 +345,12 @@ pg_enc2name pg_enc2name_tbl[] = ...@@ -267,6 +345,12 @@ pg_enc2name pg_enc2name_tbl[] =
{ {
"BIG5", PG_BIG5 "BIG5", PG_BIG5
}, },
{
"GBK", PG_GBK
},
{
"UHC", PG_UHC
},
{ {
"WIN1250", PG_WIN1250 "WIN1250", PG_WIN1250
} }
......
/* /*
* conversion functions between pg_wchar and multi-byte streams. * conversion functions between pg_wchar and multi-byte streams.
* Tatsuo Ishii * Tatsuo Ishii
* $Id: wchar.c,v 1.26 2001/10/28 06:25:56 momjian Exp $ * $Id: wchar.c,v 1.27 2002/03/05 05:52:44 momjian Exp $
* *
* WIN1250 client encoding updated by Pavel Behal * WIN1250 client encoding updated by Pavel Behal
* *
...@@ -250,6 +250,21 @@ pg_euctw_mblen(const unsigned char *s) ...@@ -250,6 +250,21 @@ pg_euctw_mblen(const unsigned char *s)
return (len); return (len);
} }
/*
* JOHAB
*/
static int
pg_johab2wchar_with_len(const unsigned char *from, pg_wchar *to, int len)
{
return (pg_euc2wchar_with_len(from, to, len));
}
static int
pg_johab_mblen(const unsigned char *s)
{
return (pg_euc_mblen(s));
}
/* /*
* convert UTF-8 string to pg_wchar (UCS-2) * convert UTF-8 string to pg_wchar (UCS-2)
* caller should allocate enough space for "to" * caller should allocate enough space for "to"
...@@ -457,34 +472,78 @@ pg_big5_mblen(const unsigned char *s) ...@@ -457,34 +472,78 @@ pg_big5_mblen(const unsigned char *s)
return (len); return (len);
} }
/*
* GBK
*/
static int
pg_gbk_mblen(const unsigned char *s)
{
int len;
if (*s > 0x7f)
{ /* kanji? */
len = 2;
}
else
{ /* should be ASCII */
len = 1;
}
return (len);
}
/*
* UHC
*/
static int
pg_uhc_mblen(const unsigned char *s)
{
int len;
if (*s > 0x7f)
{ /* 2byte? */
len = 2;
}
else
{ /* should be ASCII */
len = 1;
}
return (len);
}
pg_wchar_tbl pg_wchar_table[] = { pg_wchar_tbl pg_wchar_table[] = {
{pg_ascii2wchar_with_len, pg_ascii_mblen, 1}, /* 0; PG_SQL_ASCII */ {pg_ascii2wchar_with_len, pg_ascii_mblen, 1}, /* 0; PG_SQL_ASCII */
{pg_eucjp2wchar_with_len, pg_eucjp_mblen, 3}, /* 1; PG_EUC_JP */ {pg_eucjp2wchar_with_len, pg_eucjp_mblen, 3}, /* 1; PG_EUC_JP */
{pg_euccn2wchar_with_len, pg_euccn_mblen, 3}, /* 2; PG_EUC_CN */ {pg_euccn2wchar_with_len, pg_euccn_mblen, 3}, /* 2; PG_EUC_CN */
{pg_euckr2wchar_with_len, pg_euckr_mblen, 3}, /* 3; PG_EUC_KR */ {pg_euckr2wchar_with_len, pg_euckr_mblen, 3}, /* 3; PG_EUC_KR */
{pg_euctw2wchar_with_len, pg_euctw_mblen, 3}, /* 4; PG_EUC_TW */ {pg_euctw2wchar_with_len, pg_euctw_mblen, 3}, /* 4; PG_EUC_TW */
{pg_utf2wchar_with_len, pg_utf_mblen, 3}, /* 5; PG_UNICODE */ {pg_johab2wchar_with_len, pg_johab_mblen, 3}, /* 5; PG_JOHAB */
{pg_mule2wchar_with_len, pg_mule_mblen, 3}, /* 6; PG_MULE_INTERNAL */ {pg_utf2wchar_with_len, pg_utf_mblen, 3}, /* 6; PG_UNICODE */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 7; PG_LATIN1 */ {pg_mule2wchar_with_len, pg_mule_mblen, 3}, /* 7; PG_MULE_INTERNAL */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 8; PG_LATIN2 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 8; PG_LATIN1 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 9; PG_LATIN3 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 9; PG_LATIN2 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 10; PG_LATIN4 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 10; PG_LATIN3 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 11; PG_LATIN5 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 11; PG_LATIN4 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 12; PG_KOI8 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 12; PG_LATIN5 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 13; PG_WIN1251 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 13; PG_LATIN6 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 14; PG_ALT */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 14; PG_LATIN7 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 15; ISO-8859-5 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 15; PG_LATIN8 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 16; ISO-8859-6 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 16; PG_LATIN9 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 17; ISO-8859-7 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 17; PG_LATIN10 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 18; ISO-8859-8 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 18; PG_WIN1256 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 19; ISO-8859-10 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 19; PG_TCVN */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 20; ISO-8859-13 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 20; PG_WIN874 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 21; ISO-8859-14 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 21; PG_KOI8 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 22; ISO-8859-15 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 22; PG_WIN1251 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 23; ISO-8859-16 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 23; PG_ALT */
{0, pg_sjis_mblen, 2}, /* 24; PG_SJIS */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 24; ISO-8859-5 */
{0, pg_big5_mblen, 2}, /* 25; PG_BIG5 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 25; ISO-8859-6 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1} /* 26; PG_WIN1250 */ {pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 26; ISO-8859-7 */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 27; ISO-8859-8 */
{0, pg_sjis_mblen, 2}, /* 28; PG_SJIS */
{0, pg_big5_mblen, 2}, /* 29; PG_BIG5 */
{0, pg_gbk_mblen, 2}, /* 30; PG_GBK */
{0, pg_uhc_mblen, 2}, /* 31; PG_UHC */
{pg_latin12wchar_with_len, pg_latin1_mblen, 1}, /* 32; PG_WIN1250 */
}; };
/* returns the byte length of a word for mule internal code */ /* returns the byte length of a word for mule internal code */
......
/* $Id: pg_wchar.h,v 1.37 2001/11/05 17:46:33 momjian Exp $ */ /* $Id: pg_wchar.h,v 1.38 2002/03/05 05:52:50 momjian Exp $ */
#ifndef PG_WCHAR_H #ifndef PG_WCHAR_H
#define PG_WCHAR_H #define PG_WCHAR_H
...@@ -159,6 +159,7 @@ typedef enum pg_enc ...@@ -159,6 +159,7 @@ typedef enum pg_enc
PG_EUC_CN, /* EUC for Chinese */ PG_EUC_CN, /* EUC for Chinese */
PG_EUC_KR, /* EUC for Korean */ PG_EUC_KR, /* EUC for Korean */
PG_EUC_TW, /* EUC for Taiwan */ PG_EUC_TW, /* EUC for Taiwan */
PG_JOHAB, /* EUC for Korean JOHAB */
PG_UTF8, /* Unicode UTF-8 */ PG_UTF8, /* Unicode UTF-8 */
PG_MULE_INTERNAL, /* Mule internal code */ PG_MULE_INTERNAL, /* Mule internal code */
PG_LATIN1, /* ISO-8859-1 Latin 1 */ PG_LATIN1, /* ISO-8859-1 Latin 1 */
...@@ -171,6 +172,9 @@ typedef enum pg_enc ...@@ -171,6 +172,9 @@ typedef enum pg_enc
PG_LATIN8, /* ISO-8859-14 Latin8 */ PG_LATIN8, /* ISO-8859-14 Latin8 */
PG_LATIN9, /* ISO-8859-15 Latin9 */ PG_LATIN9, /* ISO-8859-15 Latin9 */
PG_LATIN10, /* ISO-8859-16 Latin10 */ PG_LATIN10, /* ISO-8859-16 Latin10 */
PG_WIN1256, /* windows-1256 */
PG_TCVN, /* TCVN (Windows-1258) */
PG_WIN874, /* windows-874 */
PG_KOI8R, /* KOI8-R */ PG_KOI8R, /* KOI8-R */
PG_WIN1251, /* windows-1251 (was: WIN) */ PG_WIN1251, /* windows-1251 (was: WIN) */
PG_ALT, /* (MS-DOS CP866) */ PG_ALT, /* (MS-DOS CP866) */
...@@ -180,8 +184,10 @@ typedef enum pg_enc ...@@ -180,8 +184,10 @@ typedef enum pg_enc
PG_ISO_8859_8, /* ISO-8859-8 */ PG_ISO_8859_8, /* ISO-8859-8 */
/* followings are for client encoding only */ /* followings are for client encoding only */
PG_SJIS, /* Shift JIS */ PG_SJIS, /* Shift JIS (Winindows-932) */
PG_BIG5, /* Big5 */ PG_BIG5, /* Big5 (Windows-950) */
PG_GBK, /* GBK (Windows-936) */
PG_UHC, /* UHC (Windows-949) */
PG_WIN1250, /* windows-1250 */ PG_WIN1250, /* windows-1250 */
_PG_LAST_ENCODING_ /* mark only */ _PG_LAST_ENCODING_ /* mark only */
...@@ -189,7 +195,7 @@ typedef enum pg_enc ...@@ -189,7 +195,7 @@ typedef enum pg_enc
} pg_enc; } pg_enc;
#define PG_ENCODING_BE_LAST PG_ISO_8859_8 #define PG_ENCODING_BE_LAST PG_ISO_8859_8
#define PG_ENCODING_FE_LAST PG_WIN1250 #define PG_ENCODING_FE_LAST PG_WIN1256
#ifdef MULTIBYTE #ifdef MULTIBYTE
......
...@@ -944,6 +944,9 @@ another_version_retry: ...@@ -944,6 +944,9 @@ another_version_retry:
CC_send_settings(self); CC_send_settings(self);
CC_lookup_lo(self); /* a hack to get the oid of our large CC_lookup_lo(self); /* a hack to get the oid of our large
* object oid type */ * object oid type */
#ifdef MULTIBYTE
CC_lookup_characterset(self);
#endif
CC_lookup_pg_version(self); /* Get PostgreSQL version for SQLGetInfo CC_lookup_pg_version(self); /* Get PostgreSQL version for SQLGetInfo
* use */ * use */
...@@ -1247,9 +1250,27 @@ CC_send_query(ConnectionClass *self, char *query, QueryInfo *qi) ...@@ -1247,9 +1250,27 @@ CC_send_query(ConnectionClass *self, char *query, QueryInfo *qi)
if (QR_command_successful(res)) if (QR_command_successful(res))
QR_set_status(res, PGRES_NONFATAL_ERROR); QR_set_status(res, PGRES_NONFATAL_ERROR);
QR_set_notice(res, cmdbuffer); /* will dup this string */ QR_set_notice(res, cmdbuffer); /* will dup this string */
#ifdef MULTIBYTE
if (strstr(cmdbuffer,"encoding is"))
{
if (strstr(cmdbuffer,"Current client encoding is"))
strcpy(PG_CCSS, cmdbuffer + 36);
if (strstr(cmdbuffer,"Current server encoding is"))
strcpy(PG_SCSS, cmdbuffer + 36);
mylog("~~~ NOTICE: '%s'\n", cmdbuffer);
qlog("NOTICE from backend during send_query: '%s'\n ClientEncoding = %s\n ServerEncoding = %s\n", cmdbuffer, PG_CCSS, PG_SCSS);
}
else
{
mylog("~~~ NOTICE: '%s'\n", cmdbuffer); mylog("~~~ NOTICE: '%s'\n", cmdbuffer);
qlog("NOTICE from backend during send_query: '%s'\n", cmdbuffer); qlog("NOTICE from backend during send_query: '%s'\n", cmdbuffer);
}
#else
mylog("~~~ NOTICE: '%s'\n", cmdbuffer);
qlog("NOTICE from backend during send_query: '%s'\n", cmdbuffer);
#endif
while (msg_truncated) while (msg_truncated)
msg_truncated = SOCK_get_string(sock, cmdbuffer, ERROR_MSG_LENGTH); msg_truncated = SOCK_get_string(sock, cmdbuffer, ERROR_MSG_LENGTH);
......
/*-------- /*--------
* Module : multibyte.c * Module : multibyte.c
* *
* Description: Mlutibyte related additional function. * Description: New Mlutibyte related additional function.
* *
* Create 2001-03-03 Eiji Tokuya * Create 2001-03-03 Eiji Tokuya
* New Create 2001-09-16 Eiji Tokuya
*-------- *--------
*/ */
#include "multibyte.h" #include "multibyte.h"
#include "connection.h"
#include "pgapifunc.h"
#include <string.h> #include <string.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
int multibyte_client_encoding; /* Multibyte Client Encoding. */ int PG_CCST; /* Client Charcter Status */
int multibyte_status; /* Multibyte Odds and ends character. */
int PG_SCSC; /* Server Charcter Set (code) */
int PG_CCSC; /* Client Charcter Set (code) */
unsigned char *PG_SCSS; /* Server Charcter Set (string) */
unsigned char *PG_CCSS; /* Client Charcter Set (string) */
pg_CS CS_Table[] =
{
{ "SQL_ASCII", SQL_ASCII },
{ "EUC_JP", EUC_JP },
{ "EUC_CN", EUC_CN },
{ "EUC_KR", EUC_KR },
{ "EUC_TW", EUC_TW },
{ "JOHAB", JOHAB },
{ "UNICODE", UTF8 },
{ "MULE_INTERNAL",MULE_INTERNAL },
{ "LATIN1", LATIN1 },
{ "LATIN2", LATIN2 },
{ "LATIN3", LATIN3 },
{ "LATIN4", LATIN4 },
{ "LATIN5", LATIN5 },
{ "LATIN6", LATIN6 },
{ "LATIN7", LATIN7 },
{ "LATIN8", LATIN8 },
{ "LATIN9", LATIN9 },
{ "LATIN10", LATIN10 },
{ "WIN1256", WIN1256 },
{ "TCVN", TCVN },
{ "WIN874", WIN874 },
{ "KOI8", KOI8R },
{ "WIN", WIN1251 },
{ "ALT", ALT },
{ "ISO_8859_5", ISO_8859_5 },
{ "ISO_8859_6", ISO_8859_6 },
{ "ISO_8859_7", ISO_8859_7 },
{ "ISO_8859_8", ISO_8859_8 },
{ "SJIS", SJIS },
{ "BIG5", BIG5 },
{ "GBK", GBK },
{ "UHC", UHC },
{ "WIN1250", WIN1250 },
{ "OTHER", OTHER }
};
int
pg_ismb(int characterset_code)
{
int i=0,MB_CHARACTERSET[]={EUC_JP,EUC_CN,EUC_KR,EUC_TW,UTF8,MULE_INTERNAL,SJIS,BIG5,GBK,UHC,JOHAB};
while (MB_CHARACTERSET[i] != characterset_code || OTHER != MB_CHARACTERSET[i] )
{
i++;
}
return (MB_CHARACTERSET[i]);
}
int
pg_CS_code(const unsigned char *characterset_string)
{
int i = 0, c;
for(i = 0; CS_Table[i].code != OTHER; i++)
{
if (strstr(characterset_string,CS_Table[i].name))
c = CS_Table[i].code;
}
return (c);
}
unsigned char * unsigned char *
multibyte_strchr(const unsigned char *s, unsigned char c) pg_CS_name(const int characterset_code)
{ {
int mb_st = 0, int i = 0;
i = 0; for (i = 0; CS_Table[i].code != OTHER; i++)
{
if (CS_Table[i].code == characterset_code)
return CS_Table[i].name;
}
return ("OTHER");
}
while (!(mb_st == 0 && (s[i] == c || s[i] == 0))) int
pg_CS_stat(int stat,unsigned int character,int characterset_code)
{
if (character == 0)
stat = 0;
switch (characterset_code)
{ {
if (s[i] == 0) case UTF8:
return (0);
switch (multibyte_client_encoding)
{ {
if (stat < 2 &&
character >= 0x80)
{
if (character >= 0xfc)
stat = 6;
else if (character >= 0xf8)
stat = 5;
else if (character >= 0xf0)
stat = 4;
else if (character >= 0xe0)
stat = 3;
else if (character >= 0xc0)
stat = 2;
}
else if (stat > 2 &&
character > 0x7f)
stat--;
else
stat=0;
}
break;
/* Shift-JIS Support. */
case SJIS: case SJIS:
{ {
if (mb_st < 2 && s[i] > 0x80 && !(s[i] > 0x9f && s[i] < 0xe0)) if (stat < 2 &&
mb_st = 2; character > 0x80 &&
else if (mb_st == 2) !(character > 0x9f &&
mb_st = 1; character < 0xe0))
stat = 2;
else if (stat == 2)
stat = 1;
else else
mb_st = 0; stat = 0;
} }
break; break;
/* Chinese Big5 Support. */ /* Chinese Big5 Support. */
case BIG5: case BIG5:
{ {
if (mb_st < 2 && s[i] > 0xA0) if (stat < 2 &&
mb_st = 2; character > 0xA0)
else if (mb_st == 2) stat = 2;
mb_st = 1; else if (stat == 2)
stat = 1;
else else
mb_st = 0; stat = 0;
} }
break; break;
default: /* Chinese GBK Support. */
mb_st = 0; case GBK:
{
if (stat < 2 &&
character > 0x7F)
stat = 2;
else if (stat == 2)
stat = 1;
else
stat = 0;
} }
i++; break;
/* Korian UHC Support. */
case UHC:
{
if (stat < 2 &&
character > 0x7F)
stat = 2;
else if (stat == 2)
stat = 1;
else
stat = 0;
} }
#ifdef _DEBUG break;
qlog("i = %d\n", i);
#endif
return (char *) (s + i);
}
/* EUC_JP Support */
case EUC_JP:
{
if (stat < 3 &&
character == 0x8f) /* JIS X 0212 */
stat = 3;
else
if (stat != 2 &&
(character == 0x8e ||
character > 0xa0)) /* Half Katakana HighByte & Kanji HighByte */
stat = 2;
else if (stat == 2)
stat = 1;
else
stat = 0;
}
break;
void /* EUC_CN, EUC_KR, JOHAB Support */
multibyte_init(void) case EUC_CN:
{ case EUC_KR:
multibyte_status = 0; case JOHAB:
{
if (stat < 2 &&
character > 0xa0)
stat = 2;
else if (stat == 2)
stat = 1;
else
stat = 0;
}
break;
case EUC_TW:
{
if (stat < 4 &&
character == 0x8e)
stat = 4;
else if (stat == 4 &&
character > 0xa0)
stat = 3;
else if (stat == 3 ||
stat < 2 &&
character > 0xa0)
stat = 2;
else if (stat == 2)
stat = 1;
else
stat = 0;
}
break;
default:
{
stat = 0;
}
break;
}
return stat;
} }
unsigned char * unsigned char *
check_client_encoding(unsigned char *str) pg_mbschr(const unsigned char *string, unsigned int character)
{ {
if (strstr(str, "%27SJIS%27") || int mb_st = 0;
strstr(str, "%27Shift_JIS%27") || unsigned char *s;
strstr(str, "'SJIS'") || s = (unsigned char *) string;
strstr(str, "'sjis'") ||
strstr(str, "'Shift_JIS'")) for(;;)
{
multibyte_client_encoding = SJIS;
return ("SJIS");
}
if (strstr(str, "%27BIG5%27") ||
strstr(str, "%27Big5%27") ||
strstr(str, "'BIG5'") ||
strstr(str, "'big5'") ||
strstr(str, "'Big5'"))
{ {
multibyte_client_encoding = BIG5; mb_st = pg_CS_stat(mb_st, (unsigned char) *s,PG_CCSC);
return ("BIG5"); if (mb_st == 0 && (*s == character || *s == 0))
break;
else
s++;
} }
return ("OTHER"); return (s);
} }
/*--------
* Multibyte Status Function.
* Input char
* Output 0 : 1 Byte Character.
* 1 : MultibyteCharacter Last Byte.
* N : MultibyteCharacter Fast or Middle Byte.
*--------
*/
int int
multibyte_char_check(unsigned char s) pg_mbslen(const unsigned char *string)
{ {
switch (multibyte_client_encoding) unsigned char *s;
int len, cs_stat;
for (len = 0, cs_stat = 0, s = (unsigned char *) string; *s != 0; s++)
{ {
/* Japanese Shift-JIS(CP932) Support. */ cs_stat = pg_CS_stat(cs_stat,(unsigned int) *s, PG_CCSC);
case SJIS: if (cs_stat < 2)
{ len++;
if (multibyte_status < 2 && s > 0x80 && !(s > 0x9f && s < 0xE0))
multibyte_status = 2;
else if (multibyte_status == 2)
multibyte_status = 1;
else
multibyte_status = 0;
} }
break; return len;
}
/* Chinese Big5(CP950) Support. */ unsigned char *
case BIG5: pg_mbsinc(const unsigned char *current )
{
int mb_stat = 0;
if (*current != 0)
{ {
if (multibyte_status < 2 && s > 0xA0) mb_stat = (int) pg_CS_stat(mb_stat, *current, PG_CCSC);
multibyte_status = 2; if (mb_stat == 0)
else if (multibyte_status == 2) mb_stat = 1;
multibyte_status = 1; return ((unsigned char *) current + mb_stat);
}
else else
multibyte_status = 0; return NULL;
}
void
CC_lookup_characterset(ConnectionClass *self)
{
HSTMT hstmt;
StatementClass *stmt;
RETCODE result;
static char *func = "CC_lookup_characterset";
mylog("%s: entering...\n", func);
PG_SCSS = malloc(MAX_CHARACTERSET_NAME);
PG_CCSS = malloc(MAX_CHARACTERSET_NAME);
result = PGAPI_AllocStmt(self, &hstmt);
if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
return;
stmt = (StatementClass *) hstmt;
result = PGAPI_ExecDirect(hstmt, "Show Client_Encoding", SQL_NTS);
if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
{
PGAPI_FreeStmt(hstmt, SQL_DROP);
return;
} }
break; result = PGAPI_AllocStmt(self, &hstmt);
default: if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
multibyte_status = 0; return;
stmt = (StatementClass *) hstmt;
result = PGAPI_ExecDirect(hstmt, "Show Server_Encoding", SQL_NTS);
if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
{
PGAPI_FreeStmt(hstmt, SQL_DROP);
return;
} }
#ifdef _DEBUG
qlog("multibyte_client_encoding = %d s = 0x%02X multibyte_stat = %d\n", multibyte_client_encoding, s, multibyte_status); strcpy(PG_SCSS , pg_CS_name(PG_SCSC = pg_CS_code(PG_SCSS)));
#endif strcpy(PG_CCSS , pg_CS_name(PG_CCSC = pg_CS_code(PG_CCSS)));
return (multibyte_status);
qlog(" [ Server encoding = '%s' (code = %d), Client encoding = '%s' (code = %d) ]\n", PG_SCSS, PG_SCSC, PG_CCSS, PG_CCSC);
} }
...@@ -11,29 +11,77 @@ ...@@ -11,29 +11,77 @@
#define EUC_CN 2 /* EUC for Chinese */ #define EUC_CN 2 /* EUC for Chinese */
#define EUC_KR 3 /* EUC for Korean */ #define EUC_KR 3 /* EUC for Korean */
#define EUC_TW 4 /* EUC for Taiwan */ #define EUC_TW 4 /* EUC for Taiwan */
#define UNICODE 5 /* Unicode UTF-8 */ #define JOHAB 5
#define MULE_INTERNAL 6 /* Mule internal code */ #define UTF8 6 /* Unicode UTF-8 */
#define LATIN1 7 /* ISO-8859 Latin 1 */ #define MULE_INTERNAL 7 /* Mule internal code */
#define LATIN2 8 /* ISO-8859 Latin 2 */ #define LATIN1 8 /* ISO-8859 Latin 1 */
#define LATIN3 9 /* ISO-8859 Latin 3 */ #define LATIN2 9 /* ISO-8859 Latin 2 */
#define LATIN4 10 /* ISO-8859 Latin 4 */ #define LATIN3 10 /* ISO-8859 Latin 3 */
#define LATIN5 11 /* ISO-8859 Latin 5 */ #define LATIN4 11 /* ISO-8859 Latin 4 */
#define LATIN6 12 /* ISO-8859 Latin 6 */ #define LATIN5 12 /* ISO-8859 Latin 5 */
#define LATIN7 13 /* ISO-8859 Latin 7 */ #define LATIN6 13 /* ISO-8859 Latin 6 */
#define LATIN8 14 /* ISO-8859 Latin 8 */ #define LATIN7 14 /* ISO-8859 Latin 7 */
#define LATIN9 15 /* ISO-8859 Latin 9 */ #define LATIN8 15 /* ISO-8859 Latin 8 */
#define KOI8 16 /* KOI8-R/U */ #define LATIN9 16 /* ISO-8859 Latin 9 */
#define WIN 17 /* windows-1251 */ #define LATIN10 17 /* ISO-8859 Latin 10 */
#define ALT 18 /* Alternativny Variant (MS-DOS CP866) */ #define WIN1256 18 /* Arabic Windows */
#define SJIS 32 /* Shift JIS */ #define TCVN 19 /* Vietnamese Windows */
#define BIG5 33 /* Big5 */ #define WIN874 20 /* Thai Windows */
#define WIN1250 34 /* windows-1250 */ #define KOI8R 21 /* KOI8-R/U */
#define WIN1251 22 /* windows-1251 */
#define ALT 23 /* Alternativny Variant (MS-DOS CP866) */
extern int multibyte_client_encoding; /* Multibyte client encoding. */ #define ISO_8859_5 24 /* ISO-8859-5 */
extern int multibyte_status; /* Multibyte charcter status. */ #define ISO_8859_6 25 /* ISO-8859-6 */
#define ISO_8859_7 26 /* ISO-8859-7 */
void multibyte_init(void); #define ISO_8859_8 27 /* ISO-8859-8 */
unsigned char *check_client_encoding(unsigned char *str);
int multibyte_char_check(unsigned char s); #define SJIS 28 /* Shift JIS */
unsigned char *multibyte_strchr(const unsigned char *s, unsigned char c); #define BIG5 29 /* Big5 */
#define GBK 30 /* GBK */
#define UHC 31 /* UHC */
#define WIN1250 32 /* windows-1250 */
#define OTHER -1
#define MAX_CHARACTERSET_NAME 24
#define MAX_CHARACTER_LEN 6
/* OLD Type */
// extern int multibyte_client_encoding; /* Multibyte client encoding. */
// extern int multibyte_status; /* Multibyte charcter status. */
//
// void multibyte_init(void);
// unsigned char *check_client_encoding(unsigned char *sql_string);
// int multibyte_char_check(unsigned char s);
// unsigned char *multibyte_strchr(const unsigned char *string, unsigned int c);
/* New Type */
extern int PG_CCST; /* Client Character StaTus */
extern int PG_SCSC; /* Server Character Set (Code) */
extern int PG_CCSC; /* Client Character Set (Code) */
extern unsigned char *PG_SCSS; /* Server Character Set (String) */
extern unsigned char *PG_CCSS; /* Client Character Set (String) */
extern void CC_lookup_characterset(ConnectionClass *self);
extern int pg_CS_stat(int stat,unsigned int charcter,int characterset_code);
extern int pg_CS_code(const unsigned char *stat_string);
extern unsigned char *pg_CS_name(const int code);
typedef struct pg_CS
{
unsigned char *name;
int code;
}pg_CS;
extern pg_CS CS_Table[];
extern int pg_mbslen(const unsigned char *string);
extern unsigned char *pg_mbschr(const unsigned char *string, unsigned int character);
extern unsigned char *pg_mbsinc( const unsigned char *current );
/* Old Type Compatible */
#define multibyte_init() (PG_CCST = 0)
#define multibyte_char_check(X) pg_CS_stat(PG_CCST, (unsigned int) X, PG_CCSC)
#define multibyte_strchr(X,Y) pg_mbschr(X,Y)
#define check_client_encoding(X) pg_CS_name(PG_CCSC = pg_CS_code(X))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment