C# string编码问题求解
- C# code
//打开USB读卡器端口 int port = 100; IniPort(port); TSSCInfo info = new TSSCInfo(); IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(TSSCInfo))); Marshal.StructureToPtr(info, ptr, false); int rtnVal = rdInfo_SSCID(ptr); info = (TSSCInfo)Marshal.PtrToStructure(ptr, typeof(TSSCInfo)); string ylzh = System.Text.Default.UTF32.GetString(info.SSCID);
代码是读IC卡的段落,我要通过最终读出来的ylzh,来调用软件商给的接口函数获取信息,我直接在文本框输入测试的字符串就可以正常调用,但是通过这个代码读出来的字符串就不行,我测试的时候输出上面代码读取的字符串是正确的,就是调用不了,提示错误大概是字符里面有错之类的,是C#报出来的错误。
看了一篇关于string编码的问题,我又测试转换成ASCII、UTF8、Unicode,结果一样是调用不了,我的想法就是转换成跟输入在textbox里面的编码方式一样就可以了,但是不知道是哪种,求大侠指点!坐等
[解决办法]
用这个试试!我的串口通信也出现过你的情况,我的解决方法是
- C# code
string ylzh = System.Text.ASCIIEncoding.GetEncoding("gb2312").GetString(info.SSCID);