【问题标题】:C# byte array doesn't understand by JavaJava 不理解 C# 字节数组
【发布时间】: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 哦,是的。我的错。

标签: java c# memcached


【解决方案1】:

是的,我试图从中获取字节 [],但这个字节数组长度与 c# 字节数组不同。我的要求是按字节数组的长度解析字节数组,所以要求是 c# 中 byte[] 的长度 = Java 中 byte[] 的长度

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-20
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    相关资源
    最近更新 更多