调用代码如下:
string strbaser64 = ImgToBase64String(path); // 图片的base64编码
string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=" + token;
Encoding encoding = Encoding.Default;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
request.Method = "post";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = true;
String str = "id_card_side=front&image=" + HttpUtility.UrlEncode(strbaser64);
byte[] buffer = encoding.GetBytes(str);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
string result = reader.ReadToEnd();
Console.WriteLine("身份证识别:");
Console.WriteLine(result);
return result;
string host = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=" + token;
Encoding encoding = Encoding.Default;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
request.Method = "post";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = true;
String str = "id_card_side=front&image=" + HttpUtility.UrlEncode(strbaser64);
byte[] buffer = encoding.GetBytes(str);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
string result = reader.ReadToEnd();
Console.WriteLine("身份证识别:");
Console.WriteLine(result);
return result;
返回的result中,汉子全是乱码,数字和字母正常,是哪里出了问题?
收藏
点赞
0
个赞
请登录后评论
TOP
切换版块
url编码的问题
结果流编码错误了吧
是的改成treamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));就好了
是的,StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);是这句出问题了,不应该选择默认编码,应该改为treamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));
streamreader选错编码了
HttpUtility.UrlEncode(strbaser64); 你这里需要加UTF-8。
之前一个C#也是遇到这样的问题。说加了UTF-8就好了。具体加哪里我也不清楚。我是Java
Java的方式URLencode.encode("","UTF-8")