【发布时间】:2016-03-07 13:01:00
【问题描述】:
我正在使用 memcache 在 java 和 c# 之间进行通信。 c# 以 byte[] 格式将数据放入内存缓存中,并从尝试读取该字节数组的 java 应用程序中,但在 Java 中我得到 String Object 。 示例:- C# 代码
MemcachedClient _mc = new MemcachedClient();
_mc.Serverlist = { "127.0.0.1:11211" }
byte[] stestValue = GetBytes("india");
m_c.set("key1",stestValue);
private byte[] GetBytes(string str)
{
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
return bytes;
}
Java 代码 :-// 获取我们在 memcache 中设置的具有键的数据:- Key1
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
Object value = mcc.get("key1");
这里我们在 Value 中获取字符串对象,而不是 byte[]。
【问题讨论】:
-
你可以试试
value.getBytes()吗? -
@EugenePodskal。
sizeof(char) == 2,Marshal.SizeOf(typeof(char)) == 1 -
@LucasTrzesniewski 哦,是的。我的错。