UTF-8与cfprocessingdirective

今天用DW 8编写了一个包含中文CFML页面,保存为UTF-8,结果在CF7上运行出现乱码。用记事本保存为UTF-8,居然显示正常。怪了,什么时候Adobe与MS走得近了?看来是DW 8的问题了。这里提供另一种再好的方法:在页面head加<cfprocessingdirective pageencoding="utf-8"></cfprocessingdirective>即可。我索性学习了一下cfprocessingdirective标记,特总结了一下,仅供参考。

1. 功能:表明当前页面的编码方式和是否去掉标记之间的空格。

2. 历史:CF6开始使用,CF5中是作为一个常数使用

3. 属性

  • PageEncoding(字符串):表明当前页面的编码方式,值如果不为空,则默认为当前页面的BOM( byte odder mark),否则为系统默认编码。
  • suppressWhiteSpace(布尔值):表明是否去掉标记之间的空格。

4. 注意

  • cfprocessingdirective标记有4K限制,可以放在cfsetting 或 cfsilent标记中;
  • 如果将cfprocessingdirective标记导入另外一个页面,不会产生作用;
  • PageEncoding属性对整个页面都有效,不仅仅局限于body注意一个页面的。
  • 你不能为对该标签使用条件语句。因为页面一旦被编译,其PageEncoding属性不会再改变;
  • 如果多处使用cfprocessingdirective标记,必须保证其PageEncoding属性一致;
  • 如果只使用PageEncoding属性,不要关闭标记;
  • CF接受Java 平台支持的合法编码;
  • 如果页面有BOM,PageEncoding属性必须和它保持一致;
  • suppressWhiteSpace属性也可以为变量;
  • suppressWhiteSpace属性对<cfprocessingdirective></cfprocessingdirective>之间的代码有效,一旦用了该属性<cfprocessingdirective></cfprocessingdirective>之间必须有字符。

5.范例

<cfprocessingdirective pageencoding="utf-8" suppresswhitespace="yes">
	<cfset firstName="白">
	<cfset lastName="李">
	<cfset fullName=variables.firstName&" "&variables.lastName>
	<cfoutput>my fullname is #fullName#</cfoutput>
</cfprocessingdirective>

更正:乱码的问题不在于DW,请选择“编辑”〉“参数首选”〉“新建文档”,勾选包括Unicode签名(BOM)即可解决这个问题。

上一篇上一篇: Flash Remoting支持的远程服务
下一篇下一篇: Amfphp 1.9 beta
来自文章来自: 本站原创
引用引用通告: 查看所有引用 | 我要引用此文章
标签Tags: ColdFusion Dreamweaver
相关相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭