【问题标题】:Remove extra ASCII symbol rendering in PDF删除 PDF 中额外的 ASCII 符号渲染
【发布时间】:2014-10-24 13:44:22
【问题描述】:

我有一个用户在我们的数据库中以她的名字存储了一个“注册商标”符号,当我们在数据库正确呈现时检索它时,但是当我们实际将它以 HTML 格式放置到网站本身时,它呈现为前面有额外的“A”符号:

您可以在上方看到与 PDF 文件中呈现的内容相比的数据库值。我可以在后端访问数据库值并通过 vb 代码对其进行编辑,但我真的不确定代码将如何或做什么,因为我不想删除所有 ASCII 字符,只是生成和渲染的额外符号在 PDF 中。

任何想法如何做到这一点都会很棒。

【问题讨论】:

  • 它看起来像 UTF-8'ish。您应该为您的数据库访问代码统一预期和应用的编码。
  • 您可能还需要检查 html 页面输出的编码(meta Charset="xxx"meta http-equiv="Content-Type" content="xxx")ASCII 是旧的(这是我的看法,但那是因为不是每个名称都可以用 ASCII 编写,因为我住在一个非英语母语国家)UTF-8 非常好,恕我直言,仍然可以很好地处理 ASCII。 UTF16/32 有 Big Endian/Little 的东西,在某些时候可能会非常棘手。 UTF32 内存太重,肯定需要二进制压缩...

标签: vb.net pdf ascii abcpdf9


【解决方案1】:

我认为主要问题是您仅通过将数据库结果字符串插入您的网站来生成错误的 HTML 代码

您可以使用 .NET 中 HttpUtility 中的 HtmlEncode-Function 将数据库字符串编码为 HTML

这是来自 vb.net 的示例

myEncodedString = HttpUtility.HtmlEncode(myString)

如果您在网页中使用“myEncodedString”,您将不会获得额外的字符和有效的 HTML 代码。

【讨论】:

  • 感谢您的提醒,我会仔细检查代码以查看是否正在进行编码,因为这不是“我的”应用程序,通常有很多编码/解码正在进行在。我认为这也与我们使用 ABCpdf 渲染这些 pdf 文件有关,我也在研究。
  • 我尝试使用 htmlencode,但我认为问题在于该值在插入数据库之前未编码,因此将其用作 htmlencode 不起作用,仍然呈现相同跨度>
猜你喜欢
  • 2014-07-27
  • 2011-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-01
  • 1970-01-01
相关资源
最近更新 更多