[pgsql-jp: 35728] plperl(perl v5.8.1)のマルチバイトの扱いについて

kazuhiro5_1970 @ mail.goo.ne.jp kazuhiro5_1970 @ mail.goo.ne.jp
2005年 7月 17日 (日) 15:59:24 JST


はじめまして。初めて投稿します清田と申します。

postgres8.0.3を使用しています。
plperl(perl 5.8.1)を使ってみたいのですが、
plperlでマルチバイトはどのようにして扱えば良いのでしょうか。

例えば、下の様なfunctionを作成して、実行すると
「ERROR: invalid byte sequence for encoding "UNICODE": 0xe3」
とエラーがでます。

	CREATE OR REPLACE FUNCTION testFunction () 
	RETURNS text AS 
	$$
    	my $tmpStr = "あいうえお";
	    return substr($tmpStr, 0, 1);
	$$
	LANGUAGE 'plperl';
--
Unicode (UTF8)として文字を扱いたいため、
	my $tmpStr = Encode::decode("utf8", "あいうえお");
とやってみましたが、この場合Encode::decodeのサブルーチンが定義されていないと
エラーになります。

/usr/bin/perlで直接実行すると、use utf8;を指定する事で、
utf8として扱えました。

もし、ご存知の方がいらっしゃいましたらご指導願えないでしょうか。



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