2011-07-24 17 views
2

私はmemcachedと一緒にphpを使用しています。私は問題なくPHPでそれらを設定し、盗んできphp lib memcached奇妙な入力値

[{"size":"8","0":"8","active":"1","1":"1"}] 
[{"id":"1","URL":"http:\/\/myurl.com","status":"0"}] 

: は、今私はキャッシュに次の2つの値をプッシュします。 しかし、私はこの変数にC#からアクセスしたい(私はJSONを解析する)。 最初の値はすべて順調でしたが、2番目の値は奇妙な結果になりました!なぜ、私は理解していない、と私はまだしません。テレネットセッションからのmemcachedから直接値を取得した後、私は次のようだ:

weird output http://i55.tinypic.com/dwrn83.png

私はこれが起こる理由について見当もつかない?誰かが私にASCII対Unicodeで何かをしているPHPのlibについて何か言ったが、これが真実かどうかわからないし、それを解決する方法も分かっていない。

何が起こっているか教えていただけますか?

ありがとうございます!

+0

スラッシュをエスケープする必要はありません。 '' http://myurl.com ''は完璧です。 – Amber

+0

phpのjson_encode()がこれらのスラッシュをエスケープしているようです。 – lordstyx

+0

これは...変です。 json_encode()の前にURLをurlencodeすると、memcachedから次の結果が得られます:##VVLQ²R23WÒQ21B|ÌUcGU#7 *NLLÍKNÍ-ÖK、ÉKKJJX'¸$±¤'¨Ä1Óμ± – lordstyx

答えて

0

Memcached圧縮がオンになっているかどうかを確認してください。これはあなたのデータの圧縮されたバージョンかもしれません。

+0

この圧縮はある長さ?ストリングからコロンとスラッシュを取り除こうとしたところ、それがうまくいかなかったので、ストリングをもう少し短くしてから、それが効きました。 – lordstyx

+0

私はそれがそうだと思います...とにかく、私はどのようにPHPでそれを取り除くのですか? Enyimを使用している(または使用する)C#クライアントは、圧縮をサポートしていないようです...私はphp-memcached.cnfファイルでオプションを見つけることができません。 – lordstyx

+0

使用している拡張機能によって異なります。たとえば、Memcachedの場合、Memcached :: setOption(Memcached :: OPT_COMPRESSION、false)を使用します。 –