日期:2014-05-18  浏览次数:20909 次

Dll导出函数返回的utf8 string 解码问题,最后一个字符乱码
rStr = GetWordStr(); //rStr 收到的是 utf8 str 【什么】

mbyte = System.Text.Encoding.Default.GetBytes(rStr);

这是 mbyte 是 5 个字节  

mbyte = System.Text.Encoding.Convert(System.Text.Encoding.UTF8, 

System.Text.Encoding.Unicode, mbyte);

rStr = System.Text.Encoding.Unicode.GetString(mbyte);

最后 什么 编程了 什口 , 还有某些汉字 最后一个汉字乱码,某些汉字都正常 .
  是不是 解码 有问题

------解决方案--------------------
rStr = GetWordStr(); //rStr 收到的是 utf8 str 【什么】 
1:是不是UTF8编码完全取决于你这个GetWordStr的实现。

mbyte = System.Text.Encoding.Default.GetBytes(rStr); 

这是 mbyte 是 5 个字节

mbyte = System.Text.Encoding.Convert(System.Text.Encoding.UTF8, 

System.Text.Encoding.Unicode, mbyte); 

rStr = System.Text.Encoding.Unicode.GetString(mbyte); 

最后 什么 编程了 什口 , 还有某些汉字 最后一个汉字乱码,某些汉字都正常 . 
是不是 解码 有问题

2:如果是乱码多半是编码格式有问题,你需要确定GetWordStr的实现。