JAVA中的MUTF-8编码就是UTF-8编码前面加了两个byte表示这个字节串的长度。
比如说字符串"A"的UTF-8编码是【61】,字符串长度为1,那么字符串“A”的MUTF-8编码就是【0,1,61】。
比如说字符串"AAA...AAA"(1024个‘A’),UTF编码为【61,61,61...61,61,61】,字符串长度为1024,那么它的MUTF-8编码就是【4,0,61,61,61...61,61,61】。
下面贴出C# 里面string和MUTF-8的byte[]的相互转换函数:
private static byte[] STRtoMUTF(string str)
{
int len = str.Length;
byte[] bb = new byte[2];
bb[0] = (byte)(len / 256);
bb[1] = (byte)(len % 256);
byte[] suf = Encoding.UTF8.GetBytes(str);
return bb.Concat(suf).ToArray();//连接函数
}
private static string MUTFtoSTR(byte[] mutf)
{
int len = (int)mutf[0] * 256 + (int)mutf[1];
return Encoding.UTF8.GetString(mutf, 2, len);
}
代码就不细说了。简单易懂。