2013-06-24 26 views
2

我想让ColdFusion(10)项目成为全局的。它应该支持更多的语言,如日文,中文,西班牙文等。我在互联网上搜索,发现它可以通过添加一行容易实现:ColdFusion如何处理UTF-8(多字节)支持?

<cfprocessingDirective pageencoding="utf-8"> 

但它应该将其添加到每一个CFC或CFMS。我试图将它添加到Application.cfc中,但未能显示预期的内容。那么我能做些什么来支持多种语言?(utf-8)

另外,我需要考虑数据库部分。我将字符串设计为“nvarchar”。所以当我插入/设置新值时,我必须在值前添加一个'N'。由于它是一个现有的项目,并且有数千个写入插入/设置块。我怎样才能有效地在每个现有的陈述中添加'N'?

update table 
set name = N 'name' 

我真的很感激,如果你说什么帮助。

+0

UTF8不是2字节。 – SLaks

+0

您应该使用参数。 – SLaks

+0

@SLaks感谢您的纠正。 UTF-8可以是1-4个字节。但我的问题主要是如何在ColdFusion中处理它。你的参数是什么意思? –

回答

1

CF侧:

CFBuilder 2或任何像样的文本编辑器将插入UTF-8 BOM为您和UTF-8将工作在CF的时候了如果您的文本编辑器不支持插入BOM,然后像你说的,使用<cfprocessingDirective>(作为最后手段)

SQL方面:

对于CF10 +,你可以在<cfqueryparam>使用CF_SQL_NVARCHAR。参考:What are the details for using CF_SQL_NVARCHAR in ColdFusion 10?

对于CF9或以下,在CF管理员,字符串格式设置的数据源时 - 启用配置用于非拉丁字符数据源高ASCII字符和Unicode。

然后使用任何<cfqueryparam type='CF_SQL_VARCHAR'>将由CF翻译为N'string'。但是,在准备的语句中不会使用构建在varchar列上的任何索引。

+0

我正在使用CFBuilder 2.但是如何插入utf-8 BOM?自动?我应该打开一些东西吗?我阅读了ColdFusion网站上的类似说明,但我无法理解它。 –

+0

我试着创建一个新的cfm文件并输出一些中文字符。它可以被显示更正。我查看了cfm文件的属性。发现BOM是utf-8。但是我发现其他现有的cfms没有这个属性。那么我该如何手动为他们添加“BOM”呢?谢谢。 –

+0

CFBuilder或任何Eclipse:项目属性 - >资源 - >文本文件编码:UTF-8 – Henry