微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

fw/1 - 无法在视图中显示外来字符

如何解决fw/1 - 无法在视图中显示外来字符

我在 fw/1(框架一 4.2)中有以下主控制器认操作,其中我定义了一些 rc 范围变量以显示在 views/main/default.cfm 中。

main.cfc

 function default( struct rc ) {

        rc.name="ΡΨΩΓΔ";
        rc.dupl_name="üößä";
    } 

views/main/default.cfm

       <cfoutput>
    <p> #rc.name# </p>
    <p> #rc.dupl_name# </p>
      </cfoutput>

最后在 layouts/default.cfm

<cfoutput><!DOCTYPE html>
    <html lang="en">
    <head>
        <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>
            A Simple FW/1 Layout Template
        </title>
    </head>
    <body>
       #body# 
    </body>
    </html>
</cfoutput>

不幸的是我收到以下输出

ΔΔΔΔΔ

üößä

有什么可以帮助我的想法吗?

问候

解决方法

因为我已经在我的评论中为您提供了解决方案,所以我将其作为答案发布在这里,以便其他有类似问题的人可以找到他们的字符集问题的根源。

上述问题通常是字符集编码冲突的结果。例如,如果您正在读取一个 ISO-8859-1 编码的文件并使用 UTF8 输出它,而没有对其进行正确的转换(解码/编码)。

为了像您一样通过 web 应用程序发送字符,目前最常见的字符集编码是 UTF-8。

您需要做的就是协调字符集编码或至少确保以处理引擎能够正确编码和解码字符集的方式设置编码。在您的情况下,您可以做的是:

  1. 验证模板 .cfm 文件的编码并确保其保存为 UTF-8
  2. 在 Lucee Administrator » Settings » Charset » Web charset 中将 UTF-8 定义为您的网络字符集
  3. 在 Lucee Administrator » Settings » Charset » Resource charset 中将 UTF-8 定义为资源字符集。
  4. 确保没有其他地方字符集编码设置不正确,例如“content-type: text/html;charset...”的 http 服务器响应标头或带有字符集指令的 html 元标记。
  5. 如果您有其他类型的资源,例如数据库,那么您可能还需要检查这些资源(连接和数据库/表设置)。

注意:该字符集并不总是必须是 UTF-8(UTF-8 可能对某些字符使用多个字节)。在某些用例中,您可以使用单字节编码(例如 ISO-8559-1)获得相同的结果,这也需要更少的计算资源和更少的负载。

我希望这可以帮助其他有类似问题的人。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。