We All Get Old - Naskin Diary

Yet Another My Life On The Web

HTTP::Request::CommonのPOST処理で日本語が欠落した件

はてなハイクTwitter に投稿するボットを作成していたらタイトルの件ではまってしまったのでメモ。


投稿すると日本語がバッサリ抜け落ちる。

NG

APITEST - なすきん! - なすきん! - はてなハイク


原因は開発で使っているマシンとレンタルしているサーバの環境差分を忘れたこと。


開発で使っているマシン(Mac OS X 10.5.8/Leopard)には /usr/bin/perl(5.8.8)と /opt/local/bin/perl(5.8.9)と2つ入っている。一方、レンタルサーバには /usr/bin/perl(5.8.9)しか入っていない。


レンタルーサーバで動かしていた perl スクリプトを開発マシンに持ってきてコードを修正している時に「#!」コメントを修正し忘れて、知らぬ間に /usr/bin/perl(5.8.8) で動かしてしまっていた。


「use utf8;」も設定していたので調べてみたら以下のような違いが出た。

5.8.9 5.8.8
use utf8 あり 問題なし(実際の投稿) 日本語欠落(実際の投稿)
use utf8 なし 問題なし(実際の投稿) 問題なし(実際の投稿)


レンタルサーバー上に /opt/local/bin/perl から /usr/bin/perlシンボリックリンクを貼れれば環境差分は解決するんだけど権限が無いので出来ない。。。