[pgsql-jp: 29562] UNICODEでの「ラ行」の扱いについて

Takeo Kawamura takeo-kawamura @ unitika.co.jp
2003年 4月 2日 (水) 15:34:54 JST


河村と申します。

"ラリルレロ"文字列をINSERTした後、
"ロロロロロ"を条件にしてSELECTするとデータ取得できてしまいます。

DB作成時のEncodingは"UNICODE"を使用しています。
DB作成時のEncodingを"SQL_ASCII"にしたところ問題ありませんでした。

<開発環境>
OS:Redhat8.0
DB:PostgreSQL 7.3.2
  コンパイル時:./configure --enable-multibyte=UNICODE
  DB作成時  :createdb -E UNICODE testdb
使用ツール:Common SQL ver1.59

<テーブルCreate>

create table m_gp ( 
  gp_id      integer not null, 
  gp_name    varchar(500) default ' ', 
  constraint pk_m_gp primary key (gp_id) 
);

<データINSERT>

insert into m_gp (gp_id, gp_name) values (1, 'ラリルレロ');

<データSELECT>

select * from m_gp where gp_name = 'ラララララ';
select * from m_gp where gp_name = 'リリリリリ';
select * from m_gp where gp_name = 'ルルルルル';
select * from m_gp where gp_name = 'レレレレレ';
select * from m_gp where gp_name = 'ロロロロロ';
select * from m_gp where gp_name = 'ロレルリラ';


SELECTした結果、いずれにしてもINSERTしたデータが取得できてしまいます。
バイナリで見ますと、

ラ:0xE383A9
リ:0xE383AA
ル:0xE383AB
レ:0xE383AC
ロ:0xE383AD

となっています。
ちなみに、

マ:0xE3839E
ミ:0xE3839F

となっていますが、"マ"と"ミ"を条件にしたSELECTでは正しく動作します。

解決方法をご存知の方いらっしゃらないでしょうか。
よろしくおねがいします。

-- 
Takeo Kawamura <takeo-kawamura @ unitika.co.jp>




pgsql-jp メーリングリストの案内