1、问题描述

涉及语言:vb,vbscript,vb.net,asp

最近在工作中碰到了这样一个问题:需要调用一个接口解析简历文件中的关键信息。直接用postman测试该接口,接口返回值没问题,但一旦在asp里面调用就会出现中文乱码的问题。

但界面接收到的返回值中文乱码

数据库入库的中文也都是乱码

2、解决方法

页面输出乱码很好解决的,只要把页面的输出编码设置为UTF-8,然后返回值设置成“二进制数据流数据”而不是“文本数据”。我用的语言是VB,VB调用接口是用WinHttp。

关于WinHttp的使用可以参考:WinHttp用法(WinHttp.WinHttpRequest.5.1方法,属性)_tylm22733367的博客-CSDN博客

至于入库中文乱码问题,那是由于WinHttp接口返回的winHttp.ResponseBody是一个二进制流,因此需要把该返回的二进制流转为UTF-8编码。

具体的转换代码可以参考(不过要注意最好手动敲下来,直接复制会有点问题的):

vb winhttp post 返回的数据 含有中文的部分是乱码,怎么解决?_百度知道 (baidu.com)

我的代码:

上传文件的前端ASP

<form method="post" id="frmQty" name="frmQty" action="myUpLoadFile.asp" enctype="multipart/form-data">
<label>文件名:</label>
<input type="file" name="resume_file" id="resume_file">
<input type="submit" name="btn1" id="btn1" value="发布">
</form>

中间层处理ASP myUpLoadFile.asp

<%
'设置页面的输出编码
Response.Charset="utf-8"
'相当于java中new一个对象
Set xxx = CreateObject("xxx.wsc") if Request.TotalBytes > 0 then filesize = Request.TotalBytes
filedata = Request.BinaryRead(Request.TotalBytes) contentType = Request.ServerVariables("CONTENT_TYPE") sTargetURL = "你要调用的接口地址" Set winHttp = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
winHttp.SetTimeouts 10000, 10000, 120000, 60000
winHttp.Open "POST", sTargetURL, False
winHttp.setRequestHeader "Content-Type", contentType
winHttp.setRequestHeader "Content-Length", filesize
winHttp.setRequestHeader "Connection", "keep-alive"
winHttp.Send filedata
winHttp.WaitForResponse 'Response.BinaryWrite winHttp.ResponseText
Response.BinaryWrite winHttp.ResponseBody '入库
Call xxx.AddHirePlan(6666,1,1,1,1,1,1,1,"testResume","sRequireSchool",1,"sRequireMajor","sRequireReason",
xxx.BytesToBstr(winHttp.ResponseBody,"utf-8"))
end If
%>

后端编码转换方法:xxx.wsc中

Public Function BytesToBstr(Body,Cset)
Dim Objstream
Set Objstream = CreateObject("adodb.stream")
Objstream.Type=1
Objstream.Mode=3
Objstream.Open
Objstream.Write Body
Objstream.Position=0
Objstream.Type=2
Objstream.Charset=Cset
BytesToBstr=Objstream.ReadText
Objstream.Close
Set Objstream=Nothing
End Function

3、参考资料

WinHttp用法(WinHttp.WinHttpRequest.5.1方法,属性)_tylm22733367的博客-CSDN博客https://blog.csdn.net/tylm22733367/article/details/52596990vb winhttp post 返回的数据 含有中文的部分是乱码,怎么解决?_百度知道 (baidu.com)https://zhidao.baidu.com/question/519762516325259885.html

asp+vb.net解决调接口返回中文乱码问题的更多相关文章

  1. SpringMVC中 解决@ResponseBody注解返回中文乱码

    问题:在前端通过get请求服务端返回String类型的服务时,会出现中文乱码问题 原因:由于spring默认对String类型的返回的编码采用的是 StringHttpMessageConverter ...

  2. Springboot使用FastJson后,接口返回中文乱码的问题解决。

    哎,天下文章一大抄,到处都是一模一样的教你怎么替换掉jackson成fastjson的,可后续中文乱码网上居然没一篇文章.翻了一会源码还是写个文章共享下吧.免得后来人又浪费时间折腾. 在springb ...

  3. C# 请求接口返回中文乱码→???

    在工作过程中,调用第三方接口出现当返回的数据是中文的时候,中文数据便会变成 这样??? 迷~ ,一开始我以为是发送成功后接收字符编码是不是不对,在换过UTF-8,Unicode,...都是不行. 最后 ...

  4. SpringBoot项目解决全局响应返回中文乱码问题

    一.问题 新建的基于SpringBoot的MVC项目,在请响应体中,如果有中文,会显示为乱码. 二.解决方案 1.在application.properties中设置: spring.http.enc ...

  5. springboot2.x接口返回中文乱码

    @Configuration public class GlobalConversConfiguration extends WebMvcConfigurationSupport { @Bean pu ...

  6. springmvc 解决@ResponseBody注解返回中文乱码

    使用messageConverters <bean class="org.springframework.web.servlet.mvc.method.annotation.Reque ...

  7. 解决SpringMVC的@ResponseBody返回中文乱码

    SpringMVC的@ResponseBody返回中文乱码的原因是SpringMVC默认处理的字符集是ISO-8859-1,在Spring的org.springframework.http.conve ...

  8. ajax提交 返回中文乱码问题

    接口返回数据相关 使用@ResponseBody后返回NUll 说明:刚把后台运行起来,兴高采烈的测试接口数据,结果无论如何都是返回null, 最终通过各种百度,发现原来是没有引入关键的Jar包. 解 ...

  9. 记一次@ResponseBody注解返回中文乱码的问题

    Bug场景 前端AJax $.ajax({ url: '$!{request.getContextPath()}/XX/save.do', type: 'post', dataType: 'json' ...

随机推荐

  1. hive之数据导入导出

    hive数据导入导出 一.导入数据4种方式 建表语句 create table test( name string, friends array, children map<string, in ...

  2. 【linux】 第1回 linux运维基础

    目录 1. 运维的本质 2. 电脑与服务器 2.1 电脑的种类 2.2 服务器种类 2.3 服务器品牌 2.4 服务器尺寸 2.5 服务器内部组成 3. 磁盘阵列 4. 系统简介 5. 虚拟化 6. ...

  3. Flink WordCount入门

    下面通过一个单词统计的案例,快速上手应用 Flink,进行流处理(Streaming)和批处理(Batch) 单词统计(批处理) 引入依赖 <!--flink核心包--> <depe ...

  4. DevOps|从特拉斯辞职风波到研发效能中的不靠谱人干的荒唐事

    今天发生了一件大事特拉斯辞任英国首相,我想借着这件事情说下我看到的一件研发效能的荒唐事,这其中的关联也许就是「都用了不靠谱的人」. 两件事情 今儿一早就听到,2022年10月20日英国第78任首相伊丽 ...

  5. 跟我学Python图像处理丨图像特效处理:毛玻璃、浮雕和油漆特效

    摘要:本文讲解常见的图像特效处理,从而让读者实现各种各样的图像特殊效果,并通过Python和OpenCV实现. 本文分享自华为云社区<[Python图像处理] 二十四.图像特效处理之毛玻璃.浮雕 ...

  6. MAUI 初体验 联合 WinForm 让家里废弃的手机当做电脑副品用起来

    软件效果图 软件架构草图 效果解释:运行 winform 端后 使用 ctrl+c 先复制任何词语,然后ctrl+空格 就可以将翻译结果显示在 安卓,IOS,windows 甚至 mac 任意客户端 ...

  7. Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块

    这是一篇系列博文,我将使用Abp.Zero搭建一套集成手机号免密登录验证与号码绑定功能的用户系统: Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块 Abp.Zero 手机号 ...

  8. vue使用elementUI组件提交表单(带图片)到node后台

    1.方法一(图片与表单分开,请求2次) 1.1 前台代码 // elementUI表单 <el-form ref="form" class="forms" ...

  9. 畅联新增物联网设备接入协议:精华隆的NB一键报警

    这个是有点时间了,这里记录一下! ----------------------------------------------------------------------------------- ...

  10. 少走点弯路:Wiki.js 通过 Generic OAuth2 进行身份验证

    Wiki.js介绍 Wiki.js 是一个开源的百科全书系统,可以用来搭建自己的知识库.文档库等. 官网 | GitHub 后续内容中的Wiki.js会用Wiki代替. 本文环境:Wiki 2.5.2 ...