[pgsql-jp: 38730] Re: クライアントの文字コードと、データベースの文字コードの制限

藤澤 qsecofr1 @ hotmail.com
2007年 9月 4日 (火) 19:13:58 JST


板垣さん、ありがとうございます。
以下のようなSQLを流して、確認できました。


■確認で使用したスクリプト
-------------------------------------------------------
create table t1 (
   c1 varchar(10)
);

insert into t1 values ('1234567890');
insert into t1 values ('1234567890');
insert into t1 values ('全角文字で10文字だ');

select * from t1;

insert into t1 values ('12345678901');
-------------------------------------------------------


※SQL Server 2008 も文字数での指定になってきているそうですね。
 不勉強なもので、助かりました。  m(_ _)m

/藤澤


On Tue,  4 Sep 2007 18:42:07 +0900 (JST)
ITAGAKI Takahiro <itagaki.takahiro @ oss.ntt.co.jp> wrote:

> 板垣です。
> 
> 藤澤 <qsecofr1 @ hotmail.com> wrote:
> 
> > データベースの文字コードを、UTF-8 にしているのですが、
> > varchar(10) とした列には、常にブラウザ上の10バイトの文字列を
> > 格納できるのでしょうか?
> > それとも、UTF-8 の時には、varchar(10) の 10 は文字数を表す
> > のでしょうか?
> 
> PostgreSQL では、varchar(N) の N は、エンコーディングによらず
> 常に文字数を表します。実際に格納されているサイズは、エンコーディングに
> よって変わります。日本語の文字を 10 文字格納した場合、UTF-8 でならば
> たぶん30バイトになりますし、EUC_jp の場合は20バイトかもしれません。
> 
> 他のデータベースでは、バイト数指定の意味になる場合も多いので、ご注意ください。






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