mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
723 lines
31 KiB
Plaintext
723 lines
31 KiB
Plaintext
PostgreSQL 7.2 multi-byte (MB) support README 2001/9/18 $B:n@.(B
|
||
|
||
$B@P0fC#IW(B
|
||
ishii@postgresql.org
|
||
http://www.sra.co.jp/people/t-ishii/PostgreSQL/
|
||
|
||
$B"#$O$8$a$K(B
|
||
|
||
PostgreSQL $B$K$*$1$k%^%k%A%P%$%H%5%]!<%H$O0J2<$N$h$&$JFCD'$r;}$C$F$$$^$9!%(B
|
||
|
||
1. $B%^%k%A%P%$%HJ8;z$H$7$F!$F|K\8l!$Cf9q8l$J$I$N3F9q$N(B EUC$B!$(BUnicode$B!$(B
|
||
mule internal code, ISO-8859-* $B$,%G!<%?%Y!<%9:n@.;~$KA*Br2DG=!%(B
|
||
$B%G!<%?%Y!<%9$K$O$3$N%3!<%I$N$^$^3JG<$5$l$^$9!%(B
|
||
2. $B%F!<%V%kL>$K%^%k%A%P%$%HJ8;z$,;HMQ2DG=(B
|
||
3. $B%+%i%`L>$K%^%k%A%P%$%HJ8;z$,;HMQ2DG=(B
|
||
4. $B%G!<%?$=$N$b$N$K$b%^%k%A%P%$%HJ8;z$,;HMQ2DG=(B
|
||
5. $B%^%k%A%P%$%HJ8;z$N@55,I=8=8!:w$,;HMQ2DG=(B
|
||
6. $B%^%k%A%P%$%HJ8;z$N(B LIKE $B8!:w$,;HMQ2DG=(B
|
||
7. character_length(), position(), substring() $B$J$I$NJ8;zNs4X?t$G(B
|
||
$B$N%^%k%A%P%$%H%5%]!<%H(B
|
||
8. $B%U%m%s%H%(%s%IB&$N%(%s%3!<%G%#%s%0$,%P%C%/%(%s%IB&$H0[$k>l9g$K!$(B
|
||
$B<+F0E*$K%3!<%IJQ49$r9T$J$$$^$9!%(B
|
||
|
||
$B"#%$%s%9%H!<%k(B
|
||
|
||
$B%G%U%)%k%H$N%3%s%U%#%.%e%l!<%7%g%s$G$O(B PostgreSQL $B$O%^%k%A%P%$%H$r(B
|
||
$B%5%]!<%H$7$F$$$^$;$s!%%^%k%A%P%$%H%5%]!<%H$rM-8z$K$9$kJ}K!$r@bL@$7$^$9!%(B
|
||
|
||
$B$?$H$($PF|K\8l(B EUC $B$r<g$KMxMQ$9$k>l9g$O!$(Bconfigure $B5/F0;~$K0J2<$N$h(B
|
||
$B$&$K;XDj$7$^$9!%(B
|
||
|
||
$ ./configure --enable-multibyte=EUC_JP
|
||
|
||
7.1 $B$G$O!$(B--enable-unicode-conversion $B$r;XDj$7$J$$$H(B Unicode $B$H$=$l(B
|
||
$B0J30$N%(%s%3!<%G%#%s%0$N4V$NJQ49$,$G$-$^$;$s$G$7$?$,!$(B7.2 $B0J9_$G$OC1(B
|
||
$B$K(B --enable-multibyte $B$r;XDj$7$?$@$1$G<+F0E*$K(B
|
||
--enable-unicode-conversion $B$,M-8z$K$J$j$^$9!%$?$@$7!$(B
|
||
--enable-multibyte $B$r;XDj$7$J$,$i!$(B--enable-unicode-conversion $B$@$1(B
|
||
$B$rL58z$K$9$k$3$H$O$G$-$^$;$s!%(B
|
||
|
||
$B%(%s%3!<%G%#%s%0$H$7$F$O(B EUC_JP $B$NB>!$0J2<$,;XDj$G$-$^$9!%(B
|
||
|
||
SQL_ASCII ASCII
|
||
EUC_JP $BF|K\8l(B EUC
|
||
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
|
||
EUC_KR $B4Z9q8l(B EUC$B!%(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
|
||
UNICODE UTF-8$B!%$?$@$7%5%]!<%H$9$k$N$O(B UCS-2 $B$NHO0O!$(B
|
||
$B$9$J$o$A(B 0xffff $B$^$G$G$9!%(B
|
||
MULE_INTERNAL mule $B$NFbIt%3!<%I!%$?$@$7!$(BType N $B$NITDjD9J8;z$O(B
|
||
$B%5%]!<%H$7$F$$$^$;$s!%(B
|
||
LATIN* ISO8859 Latin $B%7%j!<%:!%(B* $B$O(B 1 $B$+$i(B 5 $B$^$G;XDj(B
|
||
$B$G$-$^$9!%(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$3$N>l9g!$(B"LATIN5" $B$H$7$F;XDj$7$F2<$5$$!%(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
|
||
$B$$>l9g$O(B UNICODE $B$b$7$/$O(B MULE_INTERNAL $B$H$J$k$G$7$g$&!%(B
|
||
|
||
$B%(%s%3!<%G%#%s%0$r>JN,$7$?>l9g!$%G%U%)%k%HCM$H$7$F(B SQL_ASCII $B$,:NMQ(B
|
||
$B$5$l$^$9!%(B
|
||
|
||
$B$J$*!$(Bconfigure $B$GA*Br$7$?%(%s%3!<%G%#%s%0$O!$$"$/$^$G(B initdb $B$N$?$a$N(B
|
||
$B%G%U%)%k%HCMDxEY$N0UL#$7$+$"$j$^$;$s(B(initdb $B$G$O0z?t$G%(%s%3!<%G%#%s%0$,(B
|
||
$B;XDj$G$-$^$9(B)$B!%$7$?$,$C$F!$0[$J$k%(%s%3!<%G%#%s%0$r;HMQ$9$k$?$a$K(B
|
||
$B$o$6$o$6(B PostgreSQL $B$r%j%3%s%Q%$%k$9$kI,MW$"$j$^$;$s!%(B
|
||
|
||
initdb $B$O(B shell script $B$J$N$G!$%G%U%)%k%H$N%(%s%3!<%G%#%s%0$O(B script $B$r(B
|
||
$BE,Ev$J%(%G%#%?$GJT=8$9$k$3$H$K$h$j4JC1$KJQ99$G$-$^$9!%(Binitdb $B$N(B 61$B9TL\(B
|
||
$BIU6a$K!$(B
|
||
|
||
MULTIBYTE=EUC_JP
|
||
|
||
$B$N$h$&$J9T$,$"$k$N$G!$(B= $B0J9_$r4uK>$9$k%(%s%3!<%G%#%s%0$KJQ$($k$@$1$G$9!%(B
|
||
|
||
$BCm0U!'(BMULE_INTERNAL $B$rA*$V$H!$$?$/$5$s$NJ8;z=89g$KBP1~$G$-$FJXMx$G$9(B
|
||
$B$,!$@55,I=8=$GJ#?t$NJ8;z=89g$K$^$?$,$k$h$&$JHO0O;XDj(B($B$?$H$($P!$(B[a-$BHO(B]
|
||
$B$H$+!$(B[abc$BHO0O(B]$B$N$h$&$J(B)$B$O;H$($^$;$s!%J#?t$NHO0O;XDj$G0[$J$kJ8;z=89g(B
|
||
$B$r;H$&$N$O9=$$$^$;$s(B($B$?$H$($P(B [abc][$BHO(B-$B0O(B])$B!%$^$?!$(B[^a] $B$N$h$&$JI=8=(B
|
||
$B$O!$(B"a" $B$NB0$9$kJ8;z=89g(B($B$3$N>l9g!$(BUS-ASCII)$B$K$*$$$F(B "a" $B0J30$G$"$k(B
|
||
$B$3$H$rI=$7$^$9!%7h$7$F4A;z$dJ?2>L>$J$I(B "a" $B0J30$r$9$Y$FI=$9$o$1$G$O(B
|
||
$B$J$$$3$H$KCm0U$7$F2<$5$$!%(B
|
||
|
||
$B%$%s%9%H!<%k$O(B --enable-multibye $B$J$7$N>l9g$HF1MM$K9T$J$$$^$9!%%$%s(B
|
||
$B%9%H!<%k$N>\:Y$O(B INSTALL $B$H$$$&%F%-%9%H%U%!%$%k$r8fMw2<$5$$!%$^$?!$(B
|
||
http://www.sra.co.jp/people/t-ishii/PostgreSQL/ $B$G$b4JC1$J%$%s%9%H!<(B
|
||
$B%kJ}K!$r>R2p$7$F$$$^$9!%(B
|
||
|
||
$B"#(Binitdb/createdb/create database $B$K$*$1$k%(%s%3!<%G%#%s%0$N;XDj$K$D$$$F(B
|
||
|
||
initdb $B$G$O0J2<$N%*%W%7%g%s$G%(%s%3!<%G%#%s%0$,;XDj$G$-$^$9!%(B
|
||
|
||
-E $B%(%s%3!<%G%#%s%0(B
|
||
--encoding=$B%(%s%3!<%G%#%s%0(B
|
||
|
||
$B$3$3$G;XDj$7$?%(%s%3!<%G%#%s%0$O!$0J8e(B createdb/create database $B$G%((B
|
||
$B%s%3!<%G%#%s%0$r>JN,$7$?>l9g$K@_Dj$5$l$k%(%s%3!<%G%#%s%0$K$J$j$^$9!%(B
|
||
-E $B$^$?$O(B --encoding $B%*%W%7%g%s$r>JN,$7$?>l9g$O!$(Bconfigure $B$G;XDj$7(B
|
||
$B$?%(%s%3!<%G%#%s%0$,:NMQ$5$l$^$9!%(B
|
||
|
||
createdb $B$G$O0J2<$N%*%W%7%g%s$G%(%s%3!<%G%#%s%0$,;XDj$G$-$^$9!%(B
|
||
|
||
-E $B%(%s%3!<%G%#%s%0(B
|
||
--encoding=$B%(%s%3!<%G%#%s%0(B
|
||
|
||
create database $B$G$O0J2<$N%*%W%7%g%s$G%(%s%3!<%G%#%s%0$,;XDj$G$-$^$9!%(B
|
||
|
||
CREATE DATABASE dbanme WITH ENCODING = '$B%(%s%3!<%G%#%s%0(B';
|
||
|
||
LOCATION $B$rF1;~$K;XDj$9$k>l9g$O0J2<$N$h$&$K$J$j$^$9!%(B
|
||
|
||
CREATE DATABASE dbanme WITH LOCATION = 'path' ENCODING = '$B%(%s%3!<%G%#%s%0(B';
|
||
|
||
createdb/create database $B$G$O!$%(%s%3!<%G%#%s%0;XDj$r>JN,$7$?>l9g$O!$(Binitdb
|
||
$B$G;XDj$7$?%(%s%3!<%G%#%s%0$,:NMQ$5$l$^$9!%$3$l$O!$(Binitdb $B$,:n@.$9$k(B
|
||
$B%F%s%W%l!<%H%G!<%?%Y!<%9(B(template1)$B$N(B encoding $B%"%H%j%S%e!<%H$r7Q>5(B
|
||
$B$9$k$+$i$G$9!%(B
|
||
|
||
$B%G!<%?%Y!<%9$N%(%s%3!<%G%#%s%0$O!$(Bpsql -l$B!$(Bpsql $B$N(B \l $B$G;2>H$G$-$^$9!%(B
|
||
|
||
$ psql -l
|
||
List of databases
|
||
Database | Owner | Encoding
|
||
---------------+---------+---------------
|
||
euc_cn | t-ishii | EUC_CN
|
||
euc_jp | t-ishii | EUC_JP
|
||
euc_kr | t-ishii | EUC_KR
|
||
euc_tw | t-ishii | EUC_TW
|
||
mule_internal | t-ishii | MULE_INTERNAL
|
||
regression | t-ishii | SQL_ASCII
|
||
template1 | t-ishii | EUC_JP
|
||
test | t-ishii | EUC_JP
|
||
unicode | t-ishii | UNICODE
|
||
(9 rows)
|
||
|
||
$B"#J8;z7?$N%G!<%?7?$K$D$$$F(B
|
||
|
||
7.2$B$G$O!$(BCHAR(n)$B$H(BVARCHAR(n)$B$N(B n $B$OJ8;z?t$r0UL#$7$^$9!%(Bn $B$,%P%$%H?t$r(B
|
||
$B0UL#$9$k(B 7.1 $B0JA0$H$O0[$J$j$^$9$N$G$4Cm0U2<$5$$!%(B
|
||
|
||
$BNc$r<($7$^$9!%(B
|
||
|
||
7.2$B$G$O!$(BCHAR(1)$B$K(B"$B$"(B"$B$r3JG<$G$-$^$9$,!$(B7.1$B0JA0$G$O3JG<$G$-$^$;$s$3(B
|
||
$B$l$O!$(B"$B$"(B"$B$r3JG<$9$k$?$a$K>/$J$/$H$b(B2$B%P%$%H0J>e$rMW$9$k$+$i$G$9!%(B
|
||
$B5U$K!$(B"a" $B$O(B1$B%P%$%H$7$+>CHq$7$J$$$?$a!$(B7.1$B$G$b(B CHAR(1) $B$K3JG<$G$-$^(B
|
||
$B$9!%(B
|
||
|
||
$B$J$*!$(B7.2$B$G$O!$(B7.1$B$^$G$H0[$J$j!$(BCHAR(n)$B$K3JG<$G$-$J$$(B n $BJ8;z$h$jBg$-(B
|
||
$B$$J8;zNs$O(B n $BJ8;z$G@Z$j<N$F$i$l$k$N$G$O$J$/!$%(%i!<$K$J$k$3$H$K$4Cm(B
|
||
$B0U2<$5$$!%$3$l$O!$%^%k%A%P%$%HBP1~$NM-L5$K4X$o$i$:!$J8;zNs$N07$$$,(B
|
||
SQL$BI8=`$K1h$&$h$&$KJQ$C$?$+$i$G$9!%(B
|
||
|
||
$B"#%U%m%s%H%(%s%I$H%P%C%/%(%s%I$N<+F0%(%s%3!<%G%#%s%0JQ49$K$D$$$F(B
|
||
|
||
$B%P%C%/%(%s%I(B($B%G!<%?%Y!<%9(B)$B$H(B psql $B$J$I$N%U%m%s%H%(%s%I$N%(%s%3!<%G%#(B
|
||
$B%s%0$O0lCW$7$F$$$k$N$,86B'$G$9$,!$$$$/$D$+$N%(%s%3!<%G%#%s%0$K$D$$$F(B
|
||
$B$O%P%C%/%(%s%I$H%U%m%s%H%(%s%I$N4V$G0[$J$k$b$N$r;HMQ$9$k$3$H$,$G$-$^(B
|
||
$B$9!%$3$N>l9g!$<+F0E*$K%P%C%/%(%s%I$G%(%s%3!<%G%#%s%0JQ49$,9T$o$l$^$9!%(B
|
||
|
||
$B%P%C%/%(%s%I$N%(%s%3!<%G%#%s%0(B $B5vMF$5$l$k%U%m%s%H%(%s%I$N(B
|
||
$B%(%s%3!<%G%#%s%0(B
|
||
----------------------------------------------------------------
|
||
EUC_JP EUC_JP, SJIS, UNICODE
|
||
|
||
EUC_TW EUC_TW, BIG5, UNICODE
|
||
|
||
LATIN1,3,4 LATIN1,3,4, UNICODE
|
||
|
||
LATIN2 LATIN2, WIN1250, UNICODE
|
||
|
||
LATIN5 LATIN5, WIN, ALT, UNICODE
|
||
|
||
MULE_INTERNAL EUC_JP, SJIS, EUC_KR, EUC_CN,
|
||
EUC_TW, BIG5, LATIN1$B$+$i(B5,
|
||
WIN, ALT, WIN1250
|
||
|
||
UNICODE EUC_JP, SJIS, EUC_KR, EUC_CN,
|
||
EUC_TW, BIG5, LATIN1$B$+$i(B5,
|
||
WIN, ALT, WIN1250
|
||
----------------------------------------------------------------
|
||
|
||
$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$r%P%C%/%(%s%I$KEA$($kI,MW$,$"$j$^$9!%$=$N$?$a$NJ}K!$,$$$/$D$+$"$j$^(B
|
||
$B$9!%(B
|
||
|
||
o psql $B$N(B \encoding $B%3%^%s%I$r;H$&J}K!(B
|
||
|
||
psql$B$G$O!$(B\encoding$B%3%^%s%I$r;H$C$FF0E*$K%U%m%s%H%(%s%IB&$NJ8;z%3!<(B
|
||
$B%I$r@ZBX$($k$3$H$,$G$-$^$9!%Nc(B:
|
||
|
||
\encoding SJIS
|
||
|
||
o libpq $B$N4X?t(B PQsetClientEncoding $B$r;H$&J}K!(B
|
||
|
||
7.0 $B$+$i?7$7$$(B libpq $B4X?t(B PQsetClientEncoding $B$,DI2C$5$l$F$$$^$9!%(B
|
||
|
||
PQsetClientEncoding(PGconn *conn, const char *encoding)
|
||
|
||
$B$3$N4X?t$r;H$($P!$%3%M%/%7%g%sKh$K%(%s%3!<%G%#%s%0$r@ZBX$($k$3$H$,$G(B
|
||
$B$-$^$9!%8=:_$N%(%s%3!<%G%#%s%0$NLd$$9g$o$;$O(B
|
||
|
||
int PQclientEncoding(const PGconn *conn)
|
||
|
||
$B$G$9!%(B
|
||
|
||
o $B4D6-JQ?t(B PGCLIENTENCODING $B$r;H$&J}K!(B
|
||
|
||
$B>e5-J}K!$GBP1~$G$-$J$$>l9g!$$"$k$$$O%U%m%s%H%(%s%I$G;H$o$l$k%(%s%3!<(B
|
||
$B%G%#%s%0$,$"$i$+$8$aJ,$+$C$F$$$k>l9g$O4D6-JQ?t(B PGCLIENTENCODING $B$r;H(B
|
||
$B$&$N$,JXMx$G$9!%$3$NJ}K!$O99$KBg$-$/(B2$B$D$KJ,$+$l$^$9!%(B
|
||
|
||
(1) postmaster $B5/F0;~$K4D6-JQ?t$r@_Dj$9$kJ}K!(B
|
||
|
||
$B$9$Y$F$N%/%i%$%"%s%H(B($B%U%m%s%H%(%s%I(B)$B$,F1$8%(%s%3!<%G%#%s%0$r;H$&$N$,(B
|
||
$BJ,$+$C$F$$$k>l9g!$(Bpostmaster $B5/F0;~$K4D6-JQ?t(B PGCLIENTENCODING $B$r@_(B
|
||
$BDj$7$^$9!%$3$N>l9g$G$b!$(B(2)$B$NJ}K!$G8D!9$N%/%i%$%"%s%HKh$KJL$N%(%s%3!<(B
|
||
$B%G%#%s%0$r@_Dj$9$k$3$H$,$G$-$^$9!%(B
|
||
|
||
(2) $B%/%i%$%"%s%H!$%U%m%s%H%(%s%IKh$K%(%s%3!<%G%#%s%0$r@_Dj$7$?$$>l9g(B
|
||
|
||
$B$3$N>l9g$O$=$N%U%m%s%H%(%s%I(B($B$?$H$($P(B psql)$B$r5/F0$9$kA0$K4D6-JQ?t(B
|
||
PGCLIENTENCODING $B$r@_Dj$7$^$9!%(B
|
||
|
||
o set client_encoding $B%3%^%s%I$r;H$&J}K!(B
|
||
|
||
$B>e5-(B(2)$B$NJ}K!$O!$(Blibpq $B$r;H$C$F$$$J$$(B JDBC $B$d(B ODBC $B$G$O;HMQ$G$-$^$;(B
|
||
$B$s!%$3$N>l9g!$(BSQL$B%3%^%s%I$G$"$k(B set client_encoding $B%3%^%s%I$rMxMQ$7(B
|
||
$B$^$9!%Nc!'(B
|
||
|
||
set client_encoding to 'sjis';
|
||
|
||
$B"#8=:_@_Dj$5$l$F$$$k%U%m%s%H%(%s%IB&$N%(%s%3!<%G%#%s%0$rD4$Y$k(B
|
||
|
||
$B8=:_@_Dj$5$l$F$$$k%U%m%s%H%(%s%IB&$N%(%s%3!<%G%#%s%0$O(B
|
||
|
||
show client_encoding;
|
||
|
||
$B$G;2>H$G$-$^$9!%(B
|
||
|
||
$B"#%G%U%)%k%H$N%(%s%3!<%G%#%s%0$X$NI|5"(B
|
||
|
||
SQL$B%3%^%s%I(B:
|
||
|
||
reset client_encoding;
|
||
|
||
$B$O!$%G%U%)%k%H$N%U%m%s%H%(%s%I%(%s%3!<%G%#%s%0@_Dj$KI|5"$5$;$^$9!%(B
|
||
postmaster$B$rN)$A>e$2$k$H$-$K4D6-JQ?t(B PGCLIENTENCODING $B$,@_Dj$5$l$F$$(B
|
||
$B$k$H$=$N%(%s%3!<%G%#%s%0$K!$$=$&$G$J$1$l$P%G!<%?%Y!<%9$N%(%s%3!<%G%#(B
|
||
$B%s%0$HF1$8$K$J$j$^$9!%(B
|
||
|
||
$B"#L@<(E*$J%(%s%3!<%G%#%s%0JQ49(B
|
||
|
||
7.2$B$G$O!$(Bconvert$B$H$$$&4X?t$r;H$$!$L@<(E*$J%(%s%3!<%G%#%s%0JQ49$,$G$-(B
|
||
$B$^$9!%(B
|
||
|
||
convert(string text, [src_encoding name,] dest_encoding name)
|
||
|
||
$B$3$3$G(Bsrc_encoding$B$O(Btext$B$N%(%s%3!<%G%#%s%0L>$G$9!%>JN,$9$k$H!$%G!<%?(B
|
||
$B%Y!<%9%(%s%3!<%G%#%s%0L>$HF1$8$G$"$k$H8+$J$5$l$^$9!%(Bdest_encoding$B$O!$(B
|
||
$BJQ498e$N%(%s%3!<%G%#%s%0L>$G$9!%(B
|
||
|
||
$BNc$r<($7$^$9!%(B
|
||
|
||
SELECT convert(text, EUC_JP) FROM unicode_tbl;
|
||
|
||
$B$O!$(BUnicode$B$N%F!<%V%k(Bunicode_tbl$B$N(Btext$BNs$r(BEUC_JP$B$KJQ49$7$FJV$7$^$9!%(B
|
||
|
||
$B"#%(%s%3!<%G%#%s%0JQ49ITG=$N>l9g$N=hM}(B
|
||
|
||
$B%P%C%/%(%s%IB&$N%(%s%3!<%G%#%s%0$H%U%m%s%H%(%s%IB&$N%(%s%3!<%G%#%s%0(B
|
||
$B$,$$$D$bAj8_JQ49$G$-$k$H$O8B$j$^$;$s!%6KC<$JOC!$%P%C%/%(%s%IB&$,(B
|
||
EUC_JP $B$J$N$K!$%U%m%s%H%(%s%IB&$,(B EUC_KR $B$@$C$?$i$I$&$J$k$G$7$g$&!%(B
|
||
$B$3$N>l9g(B PostgreSQL $B$OJQ49$G$-$J$$%3!<%I$r(B 16$B?JI=8=$KJQ49$7$^$9!%(B
|
||
$B$?$H$($P!$(B"(bdae)" $B$N$h$&$K!%$J$*!$$3$N(B 16$B?JI=8=$O(B mule
|
||
internal code $B$N%3!<%I$G$"$k$3$H$KCm0U$7$F2<$5$$!%$3$l$O!$D>@\%U%m%s(B
|
||
$B%H%(%s%I(B <--> $B%P%C%/%(%s%I$N%(%s%3!<%G%#%s%0$rJQ49$9$k$N$G$O$J$/!$0l(B
|
||
$BEYFbItI=8=$G$"$k(B mule internal code $B$r7PM3$7$F$$$k$?$a$G$9!%(B
|
||
|
||
$B$J$*!$(BUnicode$B$H$=$l0J30$N%(%s%3!<%G%#%s%0$NJQ49$@$1$ONc30$G!$(BNOTICE
|
||
$B%a%C%;!<%8$,I=<($5$l!$JQ49ITG=$NJ8;z$OL5;k$5$l$^$9!%(B
|
||
|
||
$B"#(BSJIS$B%f!<%6Dj5AJ8;z$X$NBP1~(B
|
||
|
||
7.0 $B$+$i(B SJIS$B%f!<%6Dj5AJ8;z(B (UDC) $B$KBP1~$7$F$$$^$9!%(BUDC $B$r$I$&07$&$+(B
|
||
$B$H8@$&$3$H$K$D$$$FCf>r$5$s(B(nak@email.com)$B$+$iLdBjDs5/$H>\:Y$J2r@b$r(B
|
||
$BD:$-$^$7$?$N$G!$;29M$N$?$a$K$3$N%I%-%e%a%s%H$N:G8e$KIU$1$F$*$-$^$9!%(B
|
||
$B$^$?!$$3$NLdBj$K$D$$$F$O!$(BPostgreSQL$BF|K\8l%a!<%j%s%0%j%9%H$N(B
|
||
[pgsql-jp 12288] (1999/12/17$BIU(B)$B$H(B [pgsql-jp 12486] (2000/1/5$BIU(B) $B$+$i(B
|
||
$B;O$^$k%9%l%C%I$G5DO@$r8+$k$3$H$,$G$-$^$9(B($B%a!<%k$N%"!<%+%$%V$O(B
|
||
http://www.sra.co.jp/people/t-ishii/PostgreSQL/ $B$G;2>H$G$-$^$9(B)$B!%(B
|
||
|
||
$B$3$3$G$O!$$=$l$i$N5DO@$r$U$^$(!$4JC1$K2r@b$7$^$9!%(B
|
||
|
||
PostgreSQL$B$G$O!$F|K\8l$r;HMQ$9$k:]$K%P%C%/%(%s%IB&$N%(%s%3!<%G%#%s%0(B
|
||
$B$r(B EUC_JP $B$^$?$O(B MULE_INTERNAL or Unicode $B$K$9$kI,MW$,$"$j$^$9!%(B
|
||
MULE_INTERNAL $B$O(B EUC_JP $B$KJ8;z=89g$rI=$9%3!<%I$rIU$1$?$b$N$J$N$G!$K\(B
|
||
$B<AE*$KF1$8$G$9!%$^$?!$(BUnicode <---> SJIS $BJQ49$O8=:_$N$H$3$m%5%]!<%H(B
|
||
$B$5$l$F$$$^$;$s$N$GL5;k$7$^$9!%$7$?$,$C$F!$$3$3$G$O(B EUC_JP $B$H(B SJIS $B$N(B
|
||
$BAj8_JQ49$N$_$r9M$($^$9!%(B
|
||
|
||
$BM=HwCN<1(B
|
||
|
||
$B0l8}$K(B EUC_JP $B$H$$$C$F$b!$<B:]$K$OCf?H$OJ#?t$NJ8;z=89g$+$i@.$jN)$C$F(B
|
||
$B$$$^$9!%(B
|
||
|
||
G0: JIS ROMAN (ASCII $B$H$[$\F1$8(B)
|
||
G1: JIS X 0208 (JIS $B4A;z(B)
|
||
G2: JIS X 0201 (1$B%P%$%H%+%J(B)
|
||
G3: JIS X 0212 (JIS $BJd=u4A;z(B)
|
||
|
||
$B0lJ}(B SJIS $B$O$3$N$&$A4pK\E*$K(B G0, G1, G2 $B$r%5%]!<%H$7$F$*$j!$(BG3 $B$O%5(B
|
||
$B%]!<%H$7$F$$$^$;$s!%$7$?$,$C$F!$(BSJIS $B$O(B EUC_JP $B$NItJ,=89g$H$_$J$9$3(B
|
||
$B$H$,$G$-!$<B:](B PostgreSQL 6.5 $B$^$G$O$3$N9M$($G<BAu$5$l$F$$$^$7$?!%(B
|
||
|
||
$B$H$3$m$,!$(BWindows PC $B$N(B SJIS $B$N@$3&$G$O!$>e5-(B JIS $B5,3J$GDj5A$5$l$F$$(B
|
||
$B$J$$J8;z%3!<%I$,0lItMxMQ$5$l$F$*$j!$$3$NItJ,(B (UDC) $B$O=>Mh(B PostgreSQL
|
||
$B$G$OA4$/9MN8$5$l$F$$$^$;$s$G$7$?!%<B:](B UDC $B$r4^$`(B SJIS $B$r(B EUC_JP $B$K(B
|
||
$BJQ49$9$k$H$-$KIT@5$JJQ49$,9T$o$l$F$$$^$7$?!%$=$3$G(B PostgreSQL 7.0 $B$G(B
|
||
$B$O!$$^$:$3$NLdBj$r2r7h$9$k$3$H$K$7$^$7$?!%(B
|
||
|
||
$B$^$?!$(BUDC $B$NMxMQJ}$K$D$$$F$OI8=`5,3J$N$h$&$J$b$N$O$"$j$^$;$s$,!$<B$O(B
|
||
$B6H3&CDBN$G$N<h$j7h$a$,$"$j!$$$$o$f$k%G%U%!%/%H%9%?%s%@!<%I$J$i$PB8:_(B
|
||
$B$9$k$3$H$,J,$+$j$^$7$?!%$=$3$G$3$l$K$D$$$F$b$G$-$k$@$1%5%]!<%H$9$k$3(B
|
||
$B$H$K$7$^$7$?!%(B
|
||
|
||
PostgreSQL 7.0 $B$G$N(B UDC $BBP1~$N<BAu(B
|
||
|
||
(1) $B%f!<%6Dj5AJ8;zNN0h$O(B JIS $B$N%f!<%6Dj5AJ8;zNN0h$K%^%C%T%s%0$9$k!%(B
|
||
SJIS $B$H(B EUC_JP $B$G(B1$BBP(B1$B$NBP1~$K$J$j$^$9!%(B
|
||
|
||
- SJIS $B%f!<%6Dj5AJ8;zNN0h(B A ($B2>>N(B)
|
||
95$B!A(B104 $B6h(B $B"+"*(B $BF|K\8l(B EUC / G1 (JIS X 0208) 85$B!A(B95 $B6h(B
|
||
|
||
- SJIS $B%f!<%6Dj5AJ8;zNN0h(B B ($B2>>N(B)
|
||
105$B!A(B114 $B6h(B $B"+"*(B $BF|K\8l(B EUC / G3 (JIS X 0212) 85$B!A(B95 $B6h(B
|
||
|
||
(2) IBM $B3HD%J8;zNN0h(B (SJIS 115$B!A(B120 $B6h(B)
|
||
|
||
$BJQ49%F!<%V%k$K$h$C$F(B G1 (JIS X 0208)$B$H!$(BG3 (JIS X 0212)$B$KJQ49$5$l$^(B
|
||
$B$9!%$J$*!$$3$NJQ49$K$*$$$F$O!$(BSJIS --> EUC_JP $B$GJQ49$7!$:F$S(B EUC_JP --
|
||
> SJIS $B$KJQ49$9$k$H85$N(B SJIS $B$KLa$i$J$$$3$H$,$"$j$^$9!%$^$?!$(BEUC_JP --
|
||
> SJIS $B$NJQ49$G$O!$$9$Y$F$NJ8;z$rJQ49$G$-$k$o$1$G$O$J$$$N$G!$$=$N>l(B
|
||
$B9g$OJQ49ITG=J8;z$H$7$F!V".!W$KCV$-49$($^$9!%(B
|
||
|
||
*$B6H3&CDBN$N<h$j7h$a$G$O!$JQ49ITG=J8;z$O!V<BAu0MB8!W$H$J$C$F$$$^$9$,!$(B
|
||
Solaris $B$r$O$8$a!$B?$/$N%7%9%F%`$,!V".!W$rJQ49ITG=J8;z$K:NMQ$7$F$$$^(B
|
||
$B$9!%(BPostgreSQL$B$b$3$l$K9g$o$;$^$7$?!%(B
|
||
|
||
(3) NEC $BA*Dj(B IBM $B3HD%J8;zNN0h(B (SJIS 89$B!A(B92 $B6h(B)
|
||
|
||
PostgreSQL 7.0$B$G$O$9$Y$FJQ49ITG=J8;z!V".!W$KCV$-49$($i$l$^$9!%(B
|
||
|
||
PostgreSQL 7.0.1$B0J9_$G$O!$0lC6(B IBM $B3HD%J8;zNN0h$KJQ49$5$l$?8e!$(BG1
|
||
(JIS X 0208)$B$H!$(BG3 (JIS X 0212)$B$KJQ49$5$l$^$9!%(B
|
||
|
||
$B<U<-!'(B
|
||
|
||
o $BFA2H(B@$B;06(1?M"%5!<%S%9$5$s$+$i!$(BNEC $BA*Dj(B IBM $B4A;zBP1~%Q%C%A$rDs6!$7(B
|
||
$B$F$$$?$@$-$^$7$?!%(B
|
||
|
||
o $B3F<oJ8;z%;%C%H!$%3!<%I7O$K$D$$$F!$F|K\8l(B PostgreSQL $B%a!<%j%s%0%j%9%H(B
|
||
$B$N%a%s%P$NJ}$+$i%"%I%P%$%9$rD:$-$^$7$?!%$3$3$K46<U$7$^$9!%(B
|
||
$B$^$?!$(BSJIS $BBP1~$K$D$$$F$O!$;T@n(B@$B$*CcBg$5$s$N%Q%C%A$r;29M$K$5$;$F$$(B
|
||
$B$?$@$-$^$7$?!%(B
|
||
|
||
o SJIS$B%f!<%6Dj5AJ8;z(B (UDC) $B$r$I$&07$&$+$H8@$&$3$H$K$D$$$FCf>r$5$s(B
|
||
(nak@email.com)$B$+$iLdBjDs5/$H>\:Y$J2r@b$rD:$-$^$7$?!%(B
|
||
|
||
$B"#(BUnicode$B$H$=$l0J30$N%(%s%3!<%G%#%s%0$H$NAj8_JQ49$K$D$$$F(B
|
||
|
||
PostgreSQL 7.1$B$+$i(BUnicode$B$H$=$l0J30$N%(%s%3!<%G%#%s%0$H$NAj8_JQ49$,(B
|
||
$B2DG=$K$J$j$^$7$?!%$3$NJQ49$O$4$/0lIt$NJ8;z%3!<%I(B(ISO 8859-1)$B$r$N$>$-!$(B
|
||
$B%m%8%C%/$K$h$kJQ49$,$G$-$J$$$?$a!$JQ49$N:]$K$O%F!<%V%k$,I,MW$K$J$j$^(B
|
||
$B$9!%(BPostgreSQL$B$N<BAu$G$O!$(BUnicode$BJQ49%F!<%V%k$O(B Unicode organization
|
||
$B$,Ds6!$9$k$b$N$r;HMQ!$$3$l$r(BPerl$B%W%m%0%i%`$G(BC$B8@8l$N%F!<%V%k$KJQ49$7(B
|
||
$B$F:n@.$7$F$$$^$9(B(Perl$B%W%m%0%i%`$O(BNARITA Tomio$B;a:n@.$N(Blv$B%P!<%8%g%s(B
|
||
4.3.6 $B$KIUB0$9$k$b$N$r2~B$$N>e!$MxMQ$7$F$$$^$9(B)$B!%(BUnicode
|
||
organization$B$NDs6!$9$kJQ49%F!<%V%k$O:FG[I[$,5v2D$5$l$F$$$J$$$?$a!$(B
|
||
PostgreSQL$B$N%=!<%9%3!<%I$K$O4^$^$l$F$$$^$;$s!%0J2<!$;HMQ$7$?JQ49%F!<(B
|
||
$B%V%k$rNs5s$7$^$9!%(B
|
||
|
||
$B%(%s%3!<%G%#%s%0(B $BJQ49%F!<%V%k(B
|
||
============================================================
|
||
ISO 8859-1 $B$J$7(B
|
||
ISO 8859-2 8859-2.TXT
|
||
ISO 8859-3 8859-3.TXT
|
||
ISO 8859-4 8859-4.TXT
|
||
ISO 8859-5 8859-5.TXT
|
||
EUC_JP JIS0201.TXT, JIS0208.TXT, JIS0212.TXT
|
||
SJIS CP932.TXT
|
||
EUC_CN GB2312.TXT
|
||
EUC_KR OLD5601.TXT
|
||
EUC_TW CNS11643.TXT
|
||
Big5 BIG5.TXT
|
||
============================================================
|
||
|
||
$B<U<-!'(B
|
||
|
||
o $BFA2H(B@$B;06(1?M"%5!<%S%9$5$s$+$i!$(BCP932.TXT$B$h$j@8@.$7$?(BSJIS$BMQ$NJQ49%F!<(B
|
||
$B%V%k$rDs6!$7$F$$$?$@$-$^$7$?!%$3$l$K$h$j!$(BIBM $B3HD%J8;zNN0h(B (SJIS
|
||
115$B!A(B120 $B6h(B), NEC $BA*Dj(B IBM $B3HD%J8;zNN0h(B (SJIS 89$B!A(B92 $B6h(B)$B$KBP1~$9$k(B
|
||
$B$3$H$,$G$-$k$h$&$K$J$j$^$7$?!%(B
|
||
|
||
|
||
$B;29M(B1$B!'(B
|
||
|
||
Pavel Behal$B;a$K$h$jDs6!$5$l$?(BWIN1250$B%5%]!<%H$G$9$,!$(BWindows$B4D6-$G$N(B
|
||
$BMxMQ$N;EJ}$K$D$$$F;29M$K$J$k%I%-%e%a%s%H$,IUB0$7$F$$$k$N$G!$$3$3$KE:(B
|
||
$BIU$7$F$*$-$^$9!%(B
|
||
|
||
-------------------------------------------------------------------
|
||
Version: 0.91 for PgSQL 6.5
|
||
Author: Pavel Behal
|
||
Revised by: Tatsuo Ishii
|
||
Email: behal@opf.slu.cz
|
||
Licence: The Same as PostgreSQL
|
||
|
||
Sorry for my Eglish and C code, I'm not native :-)
|
||
|
||
!!!!!!!!!!!!!!!!!!!!!!!!! NO WARRANTY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
|
||
Instalation:
|
||
------------
|
||
1) Change three affected files in source directories
|
||
(I don't have time to create proper patch diffs, I don't know how)
|
||
[PostgreSQL 6.5.1$B$G$O$3$N%9%F%C%W$OI,MW$"$j$^$;$s!%(B-- $B@P0f(B]
|
||
2) Compile with enabled locale and multibyte set to LATIN2
|
||
3) Setup properly your instalation, do not forget to create locale
|
||
variables in your profile (environment). Ex. (may not be exactly true):
|
||
LC_ALL=cs_CZ.ISO8859-2
|
||
LC_COLLATE=cs_CZ.ISO8859-2
|
||
LC_CTYPE=cs_CZ.ISO8859-2
|
||
LC_MONETARY=cs_CZ.ISO8859-2
|
||
LC_NUMERIC=cs_CZ.ISO8859-2
|
||
LC_TIME=cs_CZ.ISO8859-2
|
||
4) You have to start the postmaster with locales set!
|
||
5) Try it with Czech language, it have to sort
|
||
5) Install ODBC driver for PgSQL into your M$ Windows
|
||
6) Setup properly your data source. Include this line in your ODBC
|
||
configuration dialog in field "Connect Settings:" :
|
||
SET CLIENT_ENCODING = 'WIN1250';
|
||
7) Now try it again, but in Windows with ODBC.
|
||
|
||
Description:
|
||
------------
|
||
- Depends on proper system locales, tested with RH6.0 and Slackware 3.6,
|
||
with cs_CZ.iso8859-2 loacle
|
||
- Never try to set-up server multibyte database encoding to WIN1250,
|
||
always use LATIN2 instead. There is not WIN1250 locale in Unix
|
||
- WIN1250 encoding is useable only for M$W ODBC clients. The characters are
|
||
on thy fly re-coded, to be displayed and stored back properly
|
||
|
||
Important:
|
||
----------
|
||
- it reorders your sort order depending on your LC_... setting, so don't be
|
||
confused with regression tests, they don't use locale
|
||
- "ch" is corectly sorted only in some newer locales (Ex. RH6.0)
|
||
- you have to insert money as '162,50' (with comma in aphostrophes!)
|
||
- not tested properly
|
||
-------------------------------------------------------------------
|
||
|
||
$B;29M(B2$B!'(BSJIS$B%f!<%6Dj5AJ8;z(B (UDC) $B$r$I$&07$&$+$H8@$&$3$H$K$D$$$FCf>r$5$s(B
|
||
(nak@email.com)$B$+$i$$$?$@$$$?LdBjDs5/$H2r@b$G$9!%(B
|
||
|
||
-------------------------- $B0zMQ3+;O(B ----------------------------------
|
||
---
|
||
1. SJIS $B%3!<%I$NHO0O(B
|
||
|
||
1 $B%P%$%HL\(B 0x81 - 0x9F$B!$(B0xE0 - 0xFC
|
||
2 $B%P%$%HL\(B 0x40 - 0x7E$B!$(B0x80 - 0xFC
|
||
|
||
$B$$$o$f$k!V30;zNN0h!W$NHO0O(B:
|
||
|
||
- X0208 $B6&DL<+M3NN0h(B
|
||
|
||
|--------------------
|
||
| 85 $B6h(B 0xEB40 $B!A(B
|
||
|...
|
||
|--------------------
|
||
| 89 $B6h(B 0xED40 $B!A(B ; 89$B!A(B92 $B6h$O(B
|
||
|... ; $B!V(BNEC $BA*Dj(B IBM $B3HD%J8;zNN0h!W(B
|
||
|-------------------- ; $B$H8F$P$l$k(B
|
||
| 93 $B6h(B 0xEF40 $B!A(B
|
||
| 94 $B6h(B 0xEF9F $B!A(B 0xEFFC
|
||
|
||
- $B%f!<%6Dj5AJ8;zNN0h(B
|
||
|
||
|--------------------
|
||
| 95 $B6h(B 0xF040 $B!A(B ; 95$B!A(B104 $B6h(B
|
||
|... ; $B!V%f!<%6Dj5AJ8;zNN0h(B A$B!W(B($B2>>N(B)
|
||
|--------------------
|
||
|105 $B6h(B 0xF540 $B!A(B ; 105$B!A(B114 $B6h(B
|
||
|... ; $B!V%f!<%6Dj5AJ8;zNN0h(B B$B!W(B($B2>>N(B)
|
||
|--------------------
|
||
|115 $B6h(B 0xFA40 $B!A(B ; 115$B!A(B120 $B6h$O0lHL$K(B
|
||
|... ; $B!V(BIBM $B3HD%J8;zNN0h!W(B
|
||
|120 $B6h(B ... ; $B$H8F$P$l$k(B
|
||
|--------------------
|
||
|
||
---
|
||
2. i-mode $BC<Kv$,;H$C$F$$$k?^7AJ8;z%3!<%I$NHO0O(B
|
||
|
||
0xF89F - 0xF8FC (112 $B6h(B)
|
||
0xF940 - 0xF949 (113 $B6h(B)
|
||
0xF972 - 0xF97E (113 $B6h(B)
|
||
0xF980 - 0xF990 (113 $B6h(B)
|
||
0xF9B0 (114 $B6h(B)
|
||
|
||
---
|
||
3. $B0lHLE*$J(B EUC $BF|K\8l%3!<%I$NDj5A(B
|
||
|
||
G0 : [0x21-0x7E] ; $B$$$o$f$k(B JIS ROMAN
|
||
G1 : [0xA1-0xFE] [0xA1-0xFE] ; JIS X 0208
|
||
G2 : 0x8E [0xA1-0xDF] ; JIS X 0201 $B%+%J(B
|
||
G3 : 0x8F [0xA1-0xFE] [0x21-0x7E] ; JIS X 0212 $BJd=u4A;z(B
|
||
|
||
---
|
||
[$BLdBjE@(B]
|
||
|
||
SJIS 95$B!A(B120 $B6h$O(B JIS X0208 $B$K3:Ev$9$kNN0h$,B8:_$7$J$$(B
|
||
$B$?$a!$$3$NNN0h$N(B EUC - SJIS $BJ8;z%3!<%IJQ49$O3F%Y%s%@$K(B
|
||
$B$h$C$F0[$J$k$N$G$O$J$$$+!$$H$$$&$N$,@P0fMM$+$i$N$4;XE&(B
|
||
$B$G$7$?!%(B
|
||
|
||
---
|
||
[$B5DO@(B]
|
||
|
||
$BD4::$N7k2L!$(BSJIS 95$B!A(B120 $B6h$r(B EUC $B$KJQ49$9$k$?$a$NI8=`E*$J(B
|
||
$B%k!<%k$,$J$$$o$1$G$O$J$$!$$H$$$&$3$H$,$o$+$j$^$7$?!%>\:Y$O(B
|
||
$B8e=R$N;29M;qNA$r$4Mw$$$?$@$/$H$7$F!$$3$3$G$O$=$N%k!<%k$r(B
|
||
$B4JC1$K$4@bL@$$$?$7$^$9!%(B
|
||
|
||
- SJIS $B%f!<%6Dj5AJ8;zNN0h(B A ($B2>>N(B)
|
||
95$B!A(B104 $B6h(B $B"+"*(B $BF|K\8l(B EUC / G1 85$B!A(B95 $B6h(B
|
||
|
||
$B$?$H$($P(B SJIS $B$N(B (95, 1) = 0xF040 $B$O(B
|
||
EUC $B$N(B 0xF5A1 $B$K$J$j$^$9!%(B
|
||
|
||
- SJIS $B%f!<%6Dj5AJ8;zNN0h(B B ($B2>>N(B)
|
||
105$B!A(B114 $B6h(B $B"+"*(B $BF|K\8l(B EUC / G3 85$B!A(B95 $B6h(B
|
||
|
||
$B$?$H$($P(B SJIS $B$N(B (105, 1) = 0xF540 $B$O(B
|
||
EUC $B$N(B 0x8FF5A1 $B$K$J$j$^$9!%(B
|
||
|
||
- IBM $B3HD%J8;zNN0h(B
|
||
115$B!A(B120 $B6h(B
|
||
|
||
JIS X 0208 ($BF|K\8l(B EUC / G1)$B!$(BJIS X 0212
|
||
($BF|K\8l(B EUC / G3) $B$K3:Ev$9$kJ8;z$,$"$k>l9g(B
|
||
$B$O$=$NJ8;z$K%^%C%T%s%0!%$=$&$G$J$$>l9g$O(B
|
||
$BF|K\8l(B EUC / G3 83$B!A(B84 $B6h$r!$6hE@%3!<%I$N>e0L(B
|
||
$B$+$i=g$K3d$jEv$F$F$$$/(B ($BJQ49%F!<%V%kJ}<0(B)
|
||
|
||
$B$3$N;EMM$O!$9-$/;H$o$l$F$$$k(B SJIS $B$H(B EUC $B$N%^%C%T%s%0$,%Y%s%@$K(B
|
||
$B$h$C$F0[$J$k$?$a!$Aj8_1?MQ$N:]$KLdBj$K$J$C$F$$$k$3$H$+$i!$(B1996
|
||
$BG/$K(B OSF $BF|K\%Y%s%@6(5D2q$,8!F$:n@.$7$?Js9p=q$,%Y!<%9$K$J$C$F$$(B
|
||
$B$k$h$&$G$9!%(B
|
||
|
||
Solaris $B$N%I%-%e%a%s%H$K$O!V(BTOG $BF|K\%Y%s%@6(5D2q?d>)(B EUC$B!&%7%U%H(B
|
||
JIS $B%3!<%IJQ49;EMM!W$K$b$H$E$/$H=q$$$F$"$j!$(BSolaris 2.6 $B$+$iF3F~(B
|
||
$B$7$F$$$k$N$@$=$&$G!$;d$+$i8+$l$P;v<B>e$NI8=`$H9M$($F$bIT<+A3$G$O(B
|
||
$B$J$$$H46$8$^$9!%(B
|
||
|
||
$B$J$*!$>/$J$/$H$b(B 1996 $BG/Ev;~$K$*$$$F$O!$(BOracle $B$d(B Sybase $B$O(B
|
||
SJIS $B$N%f!<%6Dj5A(B/$B%Y%s%@Dj5AJ8;zNN0h$r(B EUC $B$KJQ49$9$k:]!$H=JLIT(B
|
||
$B2DG=J8;z$H$7$F07$C$F$$$k$i$7$$$H$$$&$3$H$bJdB-$7$F$*$-$^$9!%(B
|
||
|
||
---
|
||
[$B;29M;qNA(B]
|
||
|
||
// URL $B$,D9$$$N$G!$ESCf$G@Z$l$J$$$H$$$$$N$G$9$,(B...
|
||
|
||
-$B!VF|K\8l(B EUC$B!&%7%U%H(B JIS $B%3!<%IJQ49;EMM$H%3!<%I7O<BBVD4::!W(B
|
||
1966, OSF $BF|K\%Y%s%@6(5D2q(B
|
||
http://www.opengroup.or.jp/jvc/cde/sjis-euc.html
|
||
|
||
-$B!VJ8;z%3!<%IJQ495,B'!W(B
|
||
Solaris 7$B!$(BJFP $B%f!<%6!<%:%,%$%I(B
|
||
http://docs.sun.com/ab2/coll.139.3/JFPUG/@Ab2PageView/11683?Ab2Lang=ja&Ab2Enc=euc-jp
|
||
|
||
-$B!VF|K\8lJ8;z%3!<%I!W(B
|
||
Solaris 7$B!$(BJFP $B%f!<%6!<%:%,%$%I(B
|
||
http://docs.sun.com/ab2/coll.139.3/JFPUG/@Ab2PageView/879;td=5?Ab2Lang=ja&Ab2Enc=euc-jp
|
||
|
||
// $BFf$N!V(B1$B!A(B20 $B6h!W$N5-=R$O$3$3$+$i$-$F$$$^$9!%(B
|
||
|
||
---
|
||
-------------------------- $B0zMQ$3$3$^$G(B ---------------------------------
|
||
|
||
$B2~DjMzNr!'(B
|
||
|
||
2001/10/01
|
||
* CONVERT$B$NDI2C!%(Blpad/rpad/trim/btrim/ltrim/rtrim/translate$B$N(B
|
||
$B%^%k%A%P%$%HBP1~DI2C!%(Bchar/varchar$B$G%P%$%H?t$G$O$J$/!$J8;z?t(B
|
||
$B$G%5%$%:$rDj5A$9$k$h$&$KJQ99!%0J>e!$(B7.2$B$KH?1G$5$l$^$9!%(B
|
||
|
||
2001/2/15
|
||
* $BFA2H(B@$B;06(1?M"%5!<%S%9$5$s$+$i!$(BCP932.TXT$B$h$j@8@.$7$?(BSJIS$BMQ$N(B
|
||
$BJQ49%F!<%V%k$rDs6!$7$F$$$?$@$-$^$7$?!%(B7.1$B$KH?1G$5$l$^$9!%(B
|
||
|
||
2001/1/6
|
||
* UNICODE$B$HB>$N%(%s%3!<%G%#%s%0$H$NAj8_JQ495!G=$rDI2C!%(B
|
||
* 7.1$B$KH?1G$5$l$^$9!%(B
|
||
|
||
2000/5/20
|
||
* NEC $BA*Dj(B IBM $B4A;zBP1~$rDI2C$7$^$7$?!%$3$l$O(B $BFA2H(B@$B;06(1?M"%5!<%S%9(B
|
||
$B$5$s$+$i$N(B contribute $B$G$9!%(B
|
||
* $B$3$l$i$O!$(B7.0.1 $B$KH?1G$5$l$^$9!%(B
|
||
|
||
2000/3/22
|
||
* PQsetClientEncoding, PQclientEncoding $B$r(Blibpq $B4X?t$KDI2C!$(B
|
||
$B%3%M%/%7%g%sKh$K%(%s%3!<%G%#%s%0$rJQ992DG=$K!%(B
|
||
* SJIS $B%f!<%6Dj5AJ8;z(B (UDC) $B$X$NBP1~(B
|
||
* ./configure --with-mb=EUC_JP $B$+$i(B
|
||
./configure --enable-multibyte=EUC_JP $B$KJQ99(B
|
||
* SQL_ASCII $B$N(B regression test $BDI2C(B
|
||
* $B$3$l$i$O(B 7.0 $B$KH?1G$5$l$^$9!%(B
|
||
|
||
1999/7/11 WIN1250(Windows$BMQ$N%A%'%38l(B)$B%5%]!<%H$rDI2C$7$^$7$?!%(B
|
||
* WIN1250 $B$,%U%m%s%H%(%s%IB&$N%(%s%3!<%G%#%s%0$H$7$FMxMQ$G$-$k$h(B
|
||
$B$&$K$J$j$^$7$?!%$3$N>l9g!$%P%C%/%(%s%IB&$N%(%s%3!<%G%#%s%0$O(B
|
||
LATIN2 $B$^$?$O(B MULE_INTERNAL $B$H$7$^$9!%(B
|
||
(contributed by Pavel Behal)
|
||
* backend/utils/mb/conv.c$B$K$*$1$k7?$NIT@09g$r=$@5$7$^$7$?!%(B
|
||
(contributed by Tomoaki Nishiyama)
|
||
* $B$3$l$i$O(B6.5.1$B$KH?1G$5$l$^$9!%(B
|
||
|
||
1999/3/23 $B%-%j%kJ8;z%5%]!<%HDI2CB>(B(6.5 $B$KH?1G:Q(B)
|
||
* $B%(%s%3!<%G%#%s%0$H$7$F(B KOI8(KOI8-R), WIN(CP1251), ALT(CP866) $B$r(B
|
||
$B%5%]!<%H$7$F$$$^$9!%$3$l$i$O!$%U%m%s%H%(%s%I!$%P%C%/%(%s%I!$(B
|
||
$B$I$A$i$N%(%s%3!<%G%#%s%0$H$7$F$b;HMQ2DG=$G$"$j!$%(%s%3!<%G%#%s%0$N(B
|
||
$BAj8_JQ49$,2DG=$G$9!%$^$?!$=>Mh$+$i%5%]!<%H$7$F$$$k(B ISO 8859-5 $B$b(B
|
||
$BF1MM$K;HMQ2DG=$G$9!%(B
|
||
$B%-%j%kJ8;z%5%]!<%H$O!$(BOleg Broytmann <phd@sun.med.ru> $B;a$N(B
|
||
$B%j%/%(%9%H5Z$S6(NO$K$h$j<B8=$7$^$7$?!%$3$l$O!$=>Mh$+$i$"$k(B
|
||
RCODE $B%5%]!<%H$N5!G=$r<h$j9~$`$b$N$G$b$"$j$^$9!%(B
|
||
* MB $B$H(B locale $B$rF1;~$K;XDj$7$?>l9g$KBgJ8;z!?>.J8;z$rL5;k$7$?(B
|
||
$B@55,I=8=8!:w$,@5>o$KF0:n$7$J$$%P%0$r=$@5(B
|
||
|
||
1999/1/26 Big5 $B%5%]!<%HDI2C(B(6.4.2-patched/6.5 $B$KH?1G:Q(B)
|
||
* Big5 $B$,%U%m%s%H%(%s%IB&$N%(%s%3!<%G%#%s%0$H$7$FMxMQ$G$-$k$h(B
|
||
$B$&$K$J$j$^$7$?!%$3$N>l9g!$%P%C%/%(%s%IB&$N%(%s%3!<%G%#%s%0$O(B
|
||
EUC_TW $B$^$?$O(B MULE_INTERNAL $B$H$7$^$9!%(B
|
||
* EUC_TW $B$N(B regression test $B%1!<%9$rDI2C(B
|
||
(contributed by Jonah Kuo <jonahkuo@mail.ttn.com.tw>)
|
||
|
||
1998/12/16 $BK\%I%-%e%a%s%H=$@5(B(6.4.2 $B$KH?1G:Q(B)$B!%(B
|
||
* Makefile.custom $B$G(B MB=EUC_JP $B$J$I$H@_Dj$9$kJ}K!$O(B 6.4 $B0J9_(B
|
||
$B%5%]!<%H$5$l$F$$$J$$$N$G:o=|$7$?!%(B
|
||
* $BJ8;z%3!<%I(B $B"*(B $B%(%s%3!<%G%#%s%0!$%/%i%$%"%s%H"*%U%m%s%H%(%s%I(B
|
||
$B%5!<%P"*%P%C%/%(%s%I(B $B$K$=$l$>$l8l6g$r=$@5!%(B
|
||
|
||
1998/12/15 6.4 $B8~$1%P%0=$@5%Q%C%A%j%j!<%9(B(6.4.2 $B$KH?1G:Q(B)$B!%(B
|
||
* SQL_ASCII $B%5%]!<%H$N%P%0=$@5(B
|
||
|
||
1998/11/21 6.4 $B8~$1%P%0=$@5%Q%C%A%j%j!<%9(B(6.4.2 $B$KH?1G:Q(B)$B!%(B
|
||
* BINARY CURSOR $B$NLdBj$r=$@5(B
|
||
* pg_dumpall $B$N%P%0=$@5(B
|
||
|
||
1998/11/5 6.4 $B%j%j!<%9!%(B
|
||
* pg_database $B$N(B encoding $B%+%i%`$,(B MB $B$,M-8z$G$J$$$H$-$K$b(B
|
||
$BDI2C$5$l$k$h$&$K$J$C$?!%$=$N$?$a!$(BMB $B$,M-8z$G$J$$$H$-$K$O!$(B
|
||
ASCII $B$N%(%s%3!<%G%#%s%0$rI=$9(B SQL_ASCII $B$r?7$7$$%(%s%3!<%G%#%s%0(B
|
||
$B$H$7$FDI2C$7$?!%$3$l$K$H$b$J$$!$%(%s%3!<%G%#%s%0L>$KBP1~$9$k(B
|
||
$B%(%s%3!<%G%#%s%0(BID$B$,(B SQL_ASCII $B$r(B 0 $B$H$9$kHV9f$KJQ99$K$J$C$?!%(B
|
||
|
||
1998/7/22 6.4 $B&A8~$1$K%Q%C%A$r%j%j!<%9!%(B
|
||
* initdb/createdb/create database $B$G%P%C%/%(%s%IB&$N(B
|
||
$B%(%s%3!<%G%#%s%0$r@_Dj$-$k5!G=<BAu!%$3$N$?$a!$%7%9%F%`%+%?%m(B
|
||
$B%0$N(B pg_database $B$K?7$7$$%+%i%`(B encoding $B$rDI2C(B(MB$B$,M-8z$J;~$@$1(B)
|
||
* copy $B$,(B PGCLIENTENCODING $B$KBP1~(B
|
||
* SQL92 $B$N(B "SET NAMES" $B$r%5%]!<%H(B(MB$B$,M-8z$J;~$@$1(B)
|
||
* LATIN2-5 $B$r%5%]!<%H(B
|
||
* regression test $B$K(B unicode $B$N%F%9%H%1!<%9$rDI2C(B
|
||
* MB $B@lMQ$N(B regression $B%F%9%H%G%#%l%/%H%j(B test/mb $B$rDI2C(B
|
||
* $B%=!<%9%U%!%$%k$NCV$->l=j$rBgI}8+D>$7!%(BMB $B4X78$O(B
|
||
include/mb, backend/utils/mb $B$KCV$/$h$&$K$7$?(B
|
||
|
||
1998/5/25 $B%P%0=$@5(B(mb_b3.patch $B$H$7$F(B pgsql-jp ML $B$K%j%j!<%9!$(B
|
||
$BK\2H$G$O(B 6.4 snapshot $B$K<h$j9~$^$l$kM=Dj(B)
|
||
|
||
1998/5/18 $B5!G=DI2C!?%P%0=$@5(B(mb_b2.patch $B$H$7$F(B pgsql-jp ML $B$K%j%j!<%9!$(B
|
||
$BK\2H$G$O(B 6.4 snapshot $B$K<h$j9~$^$l$kM=Dj(B)
|
||
* $B4D6-JQ?t(B PGCLIENTENCODING $B$N%5%]!<%H!%%U%m%s%H%(%s%IB&$N(B
|
||
$B%(%s%3!<%G%#%s%0$r;XDj$9$k!%8=:_!$(BSJIS, EUC_*, MULE_INTERNAL,
|
||
LATIN1 $B$,;XDj$G$-$k!%$^$?!$(B
|
||
set client_encoding to 'sjis';
|
||
$B$G$b2DG=(B
|
||
* 8bit $BJ8;z$,EO$k$HLdBj$,5/$-$k2U=j$K$G$-$k$@$1BP1~(B
|
||
|
||
1998/4/21 $B5!G=DI2C!?%P%0=$@5(B(mb_b1.patch $B$H$7$F(B pgsql-jp ML $B$K%j%j!<%9!$(B
|
||
$BK\2H$G$O(B 6.4 snapshot $B$K<h$j9~$^$l$F$$$k(B)
|
||
* character_length(), position(), substring() $B$N%^%k%A%P%$%H(B
|
||
$BBP1~(B
|
||
* octet_length() $BDI2C(B $B"*(B initdb $B$N$d$jD>$7I,MW(B
|
||
* configure $B$N%*%W%7%g%s$K(B MB $B%5%]!<%HDI2C(B
|
||
(ex. configure --with-mb=EUC_JP)
|
||
* EUC_KR $B$N(B regression test $BDI2C(B
|
||
("Soonmyung. Hong" <hong@lunaris.hanmesoft.co.kr> $B$5$sDs6!(B)
|
||
* EUC_JP $B$N(B regression test $B$K(B character_length(), position(),
|
||
substring(), octet_length() $BDI2C(B
|
||
* regress.sh $B$N(B SystemV $B$K$*$1$kHs8_49@-=$@5(B
|
||
* toupper(), tolower() $B$K(B 8bit $BJ8;z$,EO$k$HMn$A$k$3$H$,(B
|
||
$B$"$k$N$r=$@5(B
|
||
|
||
1998/3/25 PostgreSQL 6.3.1 $B%j%j!<%9!$(BMB PL2 $B$,<h$j9~$^$l$k(B
|
||
|
||
1998/3/10 PL2 $B$r%j%j!<%9(B
|
||
* EUC_JP, EUC_CN, MULE_INTERNAL $B$N(B regression test $B$rDI2C(B
|
||
(EUC_CN $B$N%G!<%?$O(B he@sra.co.jp $B$5$sDs6!(B)
|
||
* regexp $B$K$*$$$F!$(Bisalpha $B$J$I$K(B unsigend char $B0J30$NCM$,(B
|
||
$BEO$i$J$$$h$&$K%,!<%I$r$+$1$k(B
|
||
* $B1Q8l$N%I%-%e%a%s%H$rDI2C(B
|
||
* MB $B$rDj5A$7$J$$>l9g$KH/@8$9$k%P%0$r=$@5(B
|
||
|
||
1998/3/1 PL1 $B$r%j%j!<%9(B
|
||
|
||
$B0J>e!%(B
|