[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 メーリングリストの案内