memcachedというキャッシュサーバーを使用しています。setメソッドで保持させた日本語文字列、もしくはオブジェクトのインスタンス変数の日本語文字列の値がgetメソッドで復元できません。”??” という文字列や空になってしまいます。ASCII文字であれば問題なく復元できています。memcachedで日本語を取り扱う方法を教えて下さい。


※set時に日本語文字列をEUC-JPなどに変換後格納するようにもしてみましたが結果は同じでした。

サーバ
http://www.danga.com/memcached/
使用クライアントAPI
http://pecl.php.net/package/memcache

OS: CENT-OS4.1
言語:PHP5.03

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/10/12 16:15:35
  • 終了:--

回答(1件)

id:nitscape No.1

nitscape回答回数526ベストアンサー獲得回数02005/10/12 16:53:37

ポイント120pt

http://phpspot.net/php/pgbase64%82%C9%83G%83%93%83R%81%5B%83h,%8...

base64にエンコード,デコード - phpspot

なぜ扱えないのか?という理由については分かりませんが、ASCIIならOKということでしたら、Setする前にBase64でエンコードして渡し、Getで受け取ったらデコードして出力すればどうでしょうか?


速度を速めるためのmemchachedなのにちょっとだけ負荷が増えてしまいますが…

id:polaronblast

自己解決しましたので報告します。

原因は私が使用しているSSH端末にあったようです。UNIX上で直接Vimで編集していたのですが、勝手に意図されない文字エンコーディング形式に自動変換されていました。。。別の端末ソフトを使用して編集した所、無事日本語の格納・復帰が出来ました。

> nitscapeさん

調べて頂いて恐縮ですが上記の通りです。ポイントは予定通り差し上げます。

2005/10/12 18:57:47

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません