我在fw/1(framework one 4.2(中得到了以下主控制器默认操作,其中我定义了一些要在view/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将其输出,而没有对其进行正确的转换(去/编码(。
为了像现在这样通过Web应用程序发送字符,目前最常见的字符集编码是UTF-8。
您所需要做的就是协调字符集编码,或者至少确保以处理引擎能够正确编码和解码字符集的方式设置编码。在您的情况下,您可以做的是:
- 验证template.cfm文件的编码并确保其保存为UTF-8
- 在Lucee Administrator»设置»字符集»web字符集中定义UTF-8作为您的web字符集
- 在Lucee Administrator»Settings»charset»Resource charset中将UTF-8定义为资源字符集
- 确保没有其他地方的字符集编码设置不正确,例如"content-type:text/html;charset…"的http服务器响应标头或带有charset指令的html元标记
- 如果您有其他类型的资源,例如数据库,那么您可能还需要检查这些资源(连接和数据库/表设置(
注意:该字符集并不总是必须是UTF-8(UTF-8可能对某些字符使用多个字节(。在某些用例中,您可能会使用单字节编码(如ISO-8559-1(获得相同的结果,这也需要更少的计算资源和更少的有效负载。
我希望这能帮助其他有类似问题的人。