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);
}
代碼就不細說了。簡單易懂。