首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >记事本引发的一起灾难,猫猫不得已搬出了照妖镜,VFP混合HTML还是香

记事本引发的一起灾难,猫猫不得已搬出了照妖镜,VFP混合HTML还是香

作者头像
加菲猫的VFP
发布2022-02-15 15:00:28
发布2022-02-15 15:00:28
62700
代码可运行
举报
文章被收录于专栏:加菲猫的VFP加菲猫的VFP
运行总次数:0
代码可运行

抄代码才是真正的学习,两位同学深有体会:

赵总也深刻感受到听过、与写过是不一样,简单的不简单。

这不,赵总前几天学VFP BS开发的时候,翻车了。

写得好好的HTML页面,用记事本编辑修改一下,就不再输出网页,而是输出网页代码了。然后说这记事本编辑过了,无论你是用什么工具都没有还原,等于“判了死刑”。

猫猫说哪有这么严重,于是我复现了这个过程。

新建一个HTML,保存为index.html

代码语言:javascript
代码运行次数:0
运行
复制
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>加菲猫的VFP</title>
    </head>
    <body>
        VFP的黑科技
    </body>
</html>

VFP后端代码

代码语言:javascript
代码运行次数:0
运行
复制
*--输出HTML
Define Class ctl_html As session
    Procedure gethtml
        lcTmpl=getWwwrootPath()+"index.html"  &&得到HTML模板的路径
        chtml=FWS_MergeFile(lcTmpl) &&执行模板      
        _currentcode="UTF-8"  &&模板文件本身是UTF-8格式
        Return cHtml
    Endproc
Enddefine

输入网址查看页面,一切正常。

然后用记事本打开,另存为index.html

再输入网址测试

果真出现了赵总所说的现象。

认真看了一眼,左上角的第一个字符变成了 锘?,乱码,一定有蹊跷。

请出猪八戒的照妖镜,十六进制文本查看器。

出错的页面,真身:

正常的页面,真身:

原来记事本在另存为UTF8格式的时候,会在文件头偷偷加上EF BB BF。 妖怪捉到了,针对妖怪祭上法宝。

去掉前面三个字符,然后输出就OK啦,当然也可以判断一下文件头EF BB BF,有就去掉,没有就照样输出。

代码语言:javascript
代码运行次数:0
运行
复制
*--输出HTML
Define Class ctl_html As session
    Procedure gethtml
        lcTmpl=getWwwrootPath()+"index.html"  &&得到HTML模板的路径
        chtml=FWS_MergeFile(lcTmpl) &&执行模板
        chtml=substr(cHtml,4) &&RIGHT(cHtml,LEN(cHtml)-3)       
        _currentcode="UTF-8"  &&模板文件本身是UTF-8格式
        Return cHtml
    Endproc
Enddefine

也可以自己用代码另存一下还原HTML,或者用十六进制编辑工具删掉前面三个字符。

其实搞技术的,现在解决不了,是因为自己的了解的知识的广度,像今天的问题,如果我们不知道不可见字符,可以用十六进制查看器查看,就能及时找到妖怪。

就好像VFP也可以发送TSQL从MSSQL取出数据,直接将日期时间型转换成日期型一样。试了无数方法,唯独漏了一种方法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档