demo=> create table demo (content varchar); CREATE TABLE demo=> \d demo Table "public.demo" Column | Type | Collation | Nullable | Default ---------+-------------------+-----------+----------+--------- content | character varying | | | demo=> insert into demo (content) values ('äöåÄÖÅ'); INSERT 0 1 demo=> insert into demo (content) values ('aaaaaa'); INSERT 0 1 demo=> select * from demo; content --------- äöåÄÖÅ aaaaaa (2 rows) #### use DBI qw(:utils); $DBcon=DBI->connect("DBI:Pg:dbname=demo", "demo", "demo-pass"); $DBhandle=$DBcon->prepare("SELECT * FROM demo"); $DBhandle->execute(); if ($DBI::rows > 0) { print $_->{'content'}." - ".data_string_desc($_->{'content'})."\n" while $_ = $DBhandle->fetchrow_hashref(); } $DBcon->disconnect(); #### ������ - UTF8 on, non-ASCII, 6 characters 12 bytes aaaaaa - UTF8 on, ASCII, 6 characters 6 bytes