Marshal.PtrToStringAnsi中文乱码
出错代码:
string dec = Marshal.PtrToStringAnsi(audioOutput.psz_description);//输出 鎵0鍣?(Realtek High Definition Audio)
原因:
查看内存后知道内存编码是UTF8,Marshal不支持UTF转换,所以必须先转成Unicode再转成UTF8
解决后的代码:
byte[] bytes = System.Text.Encoding.Unicode.GetBytes(Marshal.PtrToStringUni(audioOutput.psz_description));//转成UNICODE编码
string dec = System.Text.Encoding.UTF8.GetString(bytes);//再转成UTF8
相关推荐
周游列国之仕子 2020-09-21
mjshldcsd 2020-06-14
81214051 2020-06-01
88384957 2020-03-27
xiaobaif 2020-01-09
88540591 2019-12-26
xiaobaif 2019-12-20
88384957 2019-11-09
lpfvip00 2019-11-09
JakobHu 2019-11-09
wwwsurfphpseocom 2020-10-28
learningever 2020-09-19
voiletbin 2020-07-26
ldcwang 2020-07-26
88236637 2020-06-03
阳历六月 2020-05-14