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);
原因がよくわからんくてけっこう時間食ってしまった。
あとピアノが弾けるようになりたい。