【问题标题】:RTF blob to file via SQL ServerRTF blob 通过 SQL Server 到文件
【发布时间】:2013-11-15 05:47:57
【问题描述】:

我们正在将源数据库 X 导入目标数据库 Y。

X 有 RTF 格式的文本块,它们以某种方式显示在其应用程序中。

我们的网络应用无法显示 RTF,因此我们被指示将这些 RTF 块转换为数据库 Y 中的文件。

我们只需将 RTF blob 从 X 中的nvarchar 复制到 Y 中我们已经用于存储附件的列中,该列的类型为 varbinary。然后当用户想要查看它时,我们将它写成一个文件foo.rtf - 这样他们就可以下载并在 Word 中打开 RTF。

不幸的是,foo.rtf 文件在 Word 中打开时,看起来就像原始 RTF,有点像

{\rtf1\ansi\ansicpg1252\deff0\deftab1134{\fonttbl{....

为了将这个 RTF“文本块”正确地转换为实际的 RTF 文件,我们需要做什么?看起来只是保存字节不起作用。

谢谢。

【问题讨论】:

    标签: sql-server rtf


    【解决方案1】:

    您是否使用扩展名 .rtf 保存文件 - 我知道 Word 以这种方式打开 RTF 文件很好(当然假设 rtf 有效)?

    添加

    那么还有其他问题,我做了一个网站,在那里我生成了几千个用户的 .RTF 文件,但复杂程度很低——没有一个关于用 word 打开它们的问题的抱怨

    添加更多

    请务必检查 Web 服务器是否为您的文件提供了正确的 MIME 文档类型(如果在浏览器中呈现)。 IIS、APache 等以不同的方式做到这一点

    【讨论】:

    • 是的,我们保存为 .rtf,双击它会在 Word 中打开。但在 Word 中,它看起来像原始的 RTF。
    • 谢谢。您关于“在浏览器中渲染”的评论很有用,我们也应该考虑这样做。
    【解决方案2】:

    原来源编码和目标编码是不同的。 我们使用了Cast(Cast(Value as Varchar(max)) as Varbinary),一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-22
      • 2022-01-13
      • 1970-01-01
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      相关资源
      最近更新 更多