Apache Velocity 的编码问题包括

发布于 2024-08-12 11:05:42 字数 381 浏览 6 评论 0原文

我有一个速度/html 文件。 我正在尝试将一些简单的 HTML 包含/解析到页面中。

如果我直接将文本复制到主文件上,它就可以正常工作:

米兰达·可儿 (Miranda Kerr) 并非维多利亚女王 秘密天使...

如果我创建一个单独的VM文件,并像这样包含它:

#parse("topicoftheday/homepagenews.vm")

我会得到坏字符垃圾:

米兰达·可儿 (Miranda Kerr) 并不是 维多利亚的秘密天使

如何?为什么?

谢谢

I have a velocity/html file.
I'm trying to include/parse some simple HTML into a page.

If I just copy the text directly on the the main file, it works fine:

Miranda Kerr hasn’t been a Victoria’s
Secret Angel for ...

If I create a separate VM file, and include it like so:

#parse("topicoftheday/homepagenews.vm")

I get bad character garbage:

Miranda Kerr hasn’t been a
Victoria’s Secret Angel for

How? Why?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

递刀给你 2024-08-19 11:05:42

看起来您使用了 3 种编码,

  1. VM 文件采用 UTF-8。
  2. Latin-1 中的速度。
  3. ANSI 中的终端/JVM。

您正在使用非 ASCII 撇号 U+2019。 UTF-8 序列是 E2 80 19,恰好是您在 Latin-1 中看到的显示为 ANSI 的 3 个字符。

您需要将它们全部更改为 UTF-8,因为 Latin-1/ANSI 没有此字符。或者您应该使用 ASCII 撇号 '.

对于速度,设置此参数,

input.encoding = UTF-8

Looks like you have 3 encodings used,

  1. The VM file in UTF-8.
  2. The Velocity in Latin-1.
  3. The terminal/JVM in ANSI.

You are using the non-ASCII apostrophe U+2019. The UTF-8 sequence is E2 80 19, happens to be the 3 chars you see in Latin-1 displayed as ANSI.

You need to change all of them to UTF-8 because Latin-1/ANSI don't have this character. Or you should use ASCII apostrophe '.

For velocity, set this parameter,

input.encoding = UTF-8
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文