当前位置:编程学习 > C#/ASP.NET >>

跪求调用动态dll返回乱码问题~~~~~~~~~ 急~~ 在线等!~~~~~~~

--------------------编程问答-------------------- 编码不对,得到他的数据以后,使用gb2312进行转换就好了。
另外,不要使用string作为返回值。使用StringBuider。
非要使用,先制定string的编码格式,不然数据不正确。
public static extern int loadcode(int code, int Length, StringBuilder address, StringBuilder pass); --------------------编程问答-------------------- 麻烦问mjp1234airen4385一下
public static extern int loadcode(int code, int Length, StringBuilder address, StringBuilder pass); 这句话只是去做链接的
而放会值是
 public static extern string Recognition(int ItemNo, int picin, int Length, string Address1, string Address2, out int lppicout, out int lpLength, out int cLength);
这个方法,是不是应该吧这个方法也该成StringBuilder 类型的

还有就是如何进行gb2312转换?? --------------------编程问答-------------------- 谁能解答一下啊~~~ --------------------编程问答-------------------- 这是一段转换的代码,写的比较乱,只是测试用的。
传入一个其他编码的字符串,返回gb2312编码的字符串。
string GetStringA(string Value)
        {
            byte[] bData = Encoding.GetEncoding("gb2312") .GetBytes(Value);
            byte[] bDataresult = new byte[bData.Length];
            int i = 0;
            for (i = 0; i < bData.Length; i++)
            {
                if (bData[i] == 0) break;
                bDataresult[i] = bData[i];
            }
            string Result = Encoding.GetEncoding("gb2312").GetString(bDataresult, 0, i);
            return Result;
        }



获取数据的时候,传入StringBuilder,应该可以返回的。
但是不能保证一定会返回正确,有许多函数内部做处理的话,
可能不会有数据返回,或者返回的多余的垃圾数据。

你最好把得到的数据存入到一个文件中,用UE之类的文本编辑工具打开,
使用其中的转换功能(文件菜单中),实际转换一下,看看是那中编码。 --------------------编程问答-------------------- 亦思啊
亦思不是有C#的例子程序吗? --------------------编程问答--------------------
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,