Hello!
2012/5/31 jiangfei <liujiang...@gmail.com>:
> UTF-8编码的java代码存入memcache中的中文,telnent到memcache查询为乱码,但java代码从memcache取出正
> 常,而ngx_lua从memcache中取出的中文,和telnent取出的是一样的乱码,请教下有没有解决办法?
显然,你的 Java memcached 驱动在把数据存入 memcached 之前进行了特殊的序列化(根据 telnet
的输出)。而显然只有此驱动才知道如何反序列化。
lua-resty-memcached 库和 ngx_memc 模块(以及标准的 ngx_memcached
模块)都不会对值进行额外的序列化工作,所以其结果自然和 telnet 的输出一致。
有几种选择:
1. 查看你的 Java memcached 驱动的文档或实现,确定它所使用的序列化方法,然后在 Lua 中进行相同的反序列化操作。
2. 在你的 Java 一侧禁用其额外的序列化操作(如果有选项可以控制的话)。或者干脆换用其他客户端向 memcached 存入值。
Regards,
-agentzh