有人用过 子佩开发包CC301SDK 吗?我用QNV_TOOL_LOCATION获取电话号归属地时返回值乱码。
StringBuilder szBuf = new StringBuilder();
int retValue = BriSDKLib.QNV_Tool(BriSDKLib.QNV_TOOL_LOCATION, 0, Telephone, "0", szBuf, 1024);
返回的szBuf 乱码。
问题直接不需要这个字段,自己先结贴。
根据你提供的信息,这个问题可能是由于返回的字符串编码格式不正确导致的。你可以尝试将 StringBuilder 构造函数的第二个参数设置为返回字符串的长度,以避免获取到未初始化的内存并导致乱码。
例如:
int retValue = BriSDKLib.QNV_Tool(BriSDKLib.QNV_TOOL_LOCATION, 0, Telephone, "0", szBuf, szBuf.Capacity);
string result = Encoding.Default.GetString(Encoding.Convert(Encoding.GetEncoding("GBK"), Encoding.Default, Encoding.Default.GetBytes(szBuf.ToString(0, retValue))));
这里使用 Encoding.GetEncoding("GBK") 来指定字符串编码格式,你可以根据具体情况调整。同时,注意 StringBuilder 的长度应该为 szBuf.Capacity,而不是 1024。