RPC::XML::Clientのエンコード宣言

MTにXML-RPCでエントリを投稿する場合に日本語入れると形式が変ですよ、というエラー吐かれて進まないと思ったらxml宣言のencodingがutf8じゃなかったことが原因だった。なぜに。


こんなん。

<?xml version="1.0" encoding="us-ascii"?>

デフォルトでutf8になってくれないこともあるんだなぁ。
モジュールのデフォルト設定みたいなのがあるんだろうか。
モジュール入れるときに聞かれるとか?


ともあれ以下を追加して解決した。

$RPC::XML::ENCODING='utf-8';
use strict;
use RPC::XML::Client;
$RPC::XML::ENCODING='utf-8';

my $client = RPC::XML::Client->new('mt-xmlrpc.cgi');
my $request = RPC::XML::request->new(
	'metaWeblog.newPost',
	RPC::XML::string->new('1'),
	RPC::XML::string->new('user_name'),
	RPC::XML::string->new('api_pass'),
	RPC::XML::struct->new({
		'title'             => RPC::XML::string->new("テスト"),
		'description'       => RPC::XML::string->new("テスト"),
		'mt_convert_breaks' => RPC::XML::string->new("1"),
	}),
	RPC::XML::boolean->new('true'),
);

my $response = $client->send_request($request);


原因がよくわからんくてけっこう時間食ってしまった。
あとピアノが弾けるようになりたい。