Zend_Rest_Server のパラメータに日本語を与えたときに文字化け発生
<?php require_once 'Zend/Rest/Server.php'; class HogeSample { public function test($msg) { return $msg; } } $server = new Zend_Rest_Server(); $server->setClass('HogeSample'); $server->handle(); ?>
この状態で、
って感じで呼び出すと
<?xml version="1.0" encoding="UTF-8"?> <HogeSample generator="zend" version="1.0"><test><response>�����</response><status>success</status></test></HogeSample>
こーんな風に化ける。
調べたら、SJISになってるっぽい。
そこで、HogeSample クラスのtestメソッドを
$msg = mb_convert_encoding($msg, 'UTF-8', 'SJIS'); return $msg;
に変更して暫定的に解決!
PHPの設定 or Zend Rest Server の設定で解決できないか調べてみる