You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Perl脚本生成HTML时内嵌<>标签的数据无法正常显示如何修复

问题修复方案

根因说明

你遇到的问题是两方面共同导致的:

  1. SQL查询语句存在语法错误,无法正确获取MESSAGE字段的完整内容
  2. 生成的HTML缺少标准文档结构,可能导致浏览器渲染异常

具体修复步骤

  • 1 修正SQL语法错误
    原SELECT语句中ID字段后缺少逗号,导致查询字段结构异常,修改后语句如下:
SELECT
  DBA_Reports.dbo.undelivered_raw_host_msgs.ID,
  DBA_Reports.dbo.undelivered_raw_host_msgs.MESSAGE
FROM
  DBA_Reports.dbo.undelivered_raw_host_msgs
  • 2 替换HTML转义模块(可选,兼容无额外模块的环境)
    你当前使用的HTML::Escape需要额外安装,可替换为Perl标准库自带的HTML::Entities模块,修改对应代码:
# 把原来的use行替换为
use HTML::Entities 'encode_entities';

# 循环输出字段时,把ID也做转义处理,MESSAGE转义替换为对应函数
$Output .= '<TR><TD align=center rowspan=1 valign=top width=1000 height=1000>'
        . encode_entities($ref->{'ID'}).'</TD>'
        .  '<TD align=center rowspan=1 valign=top width=1000 height=1000>'
        .  encode_entities($ref->{'MESSAGE'}).'</TD></TR>';
  • 3 补全HTML标准文档结构
    避免浏览器因为HTML不标准出现渲染异常,修改HTML拼接逻辑:
$Output = <<"HTML_DOC";
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>未送达原始消息列表</title>
</head>
<body>
$tbl$tblhd$Output
</table>
</body>
</html>
HTML_DOC
  • 4 修正路径写法(可选,避免Windows环境路径解析错误)
    Perl中双引号内的反斜杠为转义符,建议把所有Windows路径的反斜杠替换为正斜杠,例如:
my $filename1 = 'D:/Perl32/Scripts/UndeliveredRAW.html';

内容的提问来源于stack exchange,提问作者SQL Novice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 16:30:04