vfp使用Msxml2.ServerXMLHTTP的乱码问题

feiyafei2008 2012-01-05 10:15:10
oo = = newObject('Msxml2.ServerXMLHTTP')
oo.open('post','http://localhost/',.f.)
oo.send('')
?oo.responseText
显示: ???????
服务器端页面返回在浏览器中是“服务器已成功启动”

说明:不想在iis中设置 setchar='utf-8' ,因为用的iis启动器不支持该命令。

comprop(oo,'UTF8',1) && 虽然显示汉字还是乱码。
...全文
549 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
都市夜猫 2012-01-06
  • 打赏
  • 举报
回复
Msxml 默认是按 utf-8 来解码的,如果你的网页是用 gb2312 来编码并且包含中文字符的话,收到的 responseText 经过它解码后就变成了乱码。

避免这种乱码问题的最好方法是页面声明为 utf-8 编码,就是 head 部分这条语句:
<meta HTTP-EQUIV="Content-Type" Content="text/html; charset=utf-8">
保存这个 asp 或 html 文件时也一定要用与声明相同的编码格式(utf-8)来保存。

当然有时候页面不是你写的,或者你根本无权做这种编码转换

要知道返回的数据除了 responseText 外,还有一个未经解码的原始数据 responseBody !
如果你确信服务端发回的数据是 gb2312 编码的话,直接用 responseBody 就可以了

oo = newObject('Msxml2.ServerXMLHTTP')
oo.open('POST','http://localhost/',.f.)
oo.send('')
? ''+oo.responseBody

feiyafei2008 2012-01-06
  • 打赏
  • 举报
回复
MESSAGEBOX(STRCONV(oo.responsebody,1),0)

可以了,谢谢老大了。
feiyafei2008 2012-01-06
  • 打赏
  • 举报
回复
如果用messagebox(oo.responseBody)
显示为:
B7FECEF1C6F7D2D1B3C9B9A6C6F4B6AF
内容概要:本文提出了一种基于加权稀疏矩阵恢复与加速交替方向乘子法(ADMM)的单通道盲解混响算法,并提供了完整的Matlab代码实现。该方法旨在从仅有的单路接收信号中有效分离出原始声源信号,克服传统多通道方法对硬件的依赖。核心技术结合了信号在时频域的稀疏性先验,通过构建加权机制以增强稀疏矩阵恢复的准确性,并引入加速ADMM算法来优化求解过程,显著提升了算法的收敛速度与计算效率。该算法特别适用于麦克风阵列受限或无法部署的复杂声学环境,能够有效抑制混响干扰,从而显著提升语音信号的清晰度与后续语音识别系统的性能。; 适合人群:具备扎实的数字信号处理、凸优化理论及稀疏表示基础,从事音频信号处理、语音增强、盲源分离或相关领域研究与开发工作的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决单麦克风场景下的语音混响去除难题,提升语音通信质量;②应用于智能助听器、车载语音系统、远程视频会议、人机交互等存在严重混响的实际应用场景;③为盲解卷积、稀疏信号恢复等领域的研究提供一种高效的算法实现范例与优化思路。; 阅读建议:建议读者在深入理解信号稀疏性、ADMM优化框架等理论基础上,结合所提供的Matlab代码进行实践,重点分析加权策略的设计原理及其对恢复性能的影响,并通过调整正则化参数、权重因子等关键变量,探究其在不同混响强度和噪声条件下的鲁棒性与泛化能力。

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧