fw/1 - 无法在视图中显示外来字符
fw/1 - Can not display foreign characters in views
我在 fw/1(框架一 4.2)中获得了以下主控制器默认操作,我在其中定义了一些要在 views/main/default.cfm.
中显示的 rc 范围变量
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 输出它而没有正确转换 (de-/encoded)。
为了像您一样通过网络应用程序发送字符,目前最常见的字符集编码是 UTF-8。
您需要做的就是协调字符集编码,或者至少确保编码的设置方式使处理引擎能够正确地编码和解码字符集。针对您的情况,您可以做的是:
- 验证模板 .cfm 文件的编码并确保其保存为 UTF-8
- 在 Lucee Administrator » 设置 » 字符集 » Web 字符集中将 UTF-8 定义为您的网络字符集
- 在 Lucee Administrator » 设置 » 字符集 » 资源字符集中将 UTF-8 定义为您的资源字符集。
- 确保没有其他地方的字符集编码设置不正确,例如 http 服务器响应 header 的“content-type: text/html;charset...”或带有字符集指令的 html meta-tag。
- 如果您有其他类型的资源,例如数据库,那么您可能还需要检查这些资源(连接和 database/table 设置)。
注意:该字符集并不总是必须是 UTF-8(UTF-8 可能对某些字符使用多个字节)。在某些用例中,您可以使用单字节编码(例如 ISO-8559-1)获得相同的结果,这也需要更少的计算资源和更少的有效负载。
我希望这可以帮助其他有类似问题的人。
我在 fw/1(框架一 4.2)中获得了以下主控制器默认操作,我在其中定义了一些要在 views/main/default.cfm.
中显示的 rc 范围变量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 输出它而没有正确转换 (de-/encoded)。
为了像您一样通过网络应用程序发送字符,目前最常见的字符集编码是 UTF-8。
您需要做的就是协调字符集编码,或者至少确保编码的设置方式使处理引擎能够正确地编码和解码字符集。针对您的情况,您可以做的是:
- 验证模板 .cfm 文件的编码并确保其保存为 UTF-8
- 在 Lucee Administrator » 设置 » 字符集 » Web 字符集中将 UTF-8 定义为您的网络字符集
- 在 Lucee Administrator » 设置 » 字符集 » 资源字符集中将 UTF-8 定义为您的资源字符集。
- 确保没有其他地方的字符集编码设置不正确,例如 http 服务器响应 header 的“content-type: text/html;charset...”或带有字符集指令的 html meta-tag。
- 如果您有其他类型的资源,例如数据库,那么您可能还需要检查这些资源(连接和 database/table 设置)。
注意:该字符集并不总是必须是 UTF-8(UTF-8 可能对某些字符使用多个字节)。在某些用例中,您可以使用单字节编码(例如 ISO-8559-1)获得相同的结果,这也需要更少的计算资源和更少的有效负载。
我希望这可以帮助其他有类似问题的人。