ColdFusion如何处理UTF-8(多字节)支持?

时间:2013-06-24 19:16:44

标签: sql-server coldfusion

我想让ColdFusion(10)项目成为全球性的。它应该支持更多的语言,如日语,中文,西班牙语等。我在互联网上搜索,发现可以通过添加一行来轻松完成:

<cfprocessingDirective pageencoding="utf-8">

但它应该在每个cfc或cfms中添加它。我试图在Application.cfc中添加它,但未能显示预期的内容。那么我该怎么做才能支持多种语言?(utf-8)

另外,我需要考虑数据库部分。我将带有字符串的db设计为“nvarchar”。因此,当我插入/设置新值时,我必须在值之前添加“N”。由于它是一个现有的项目,并且有成千上万的书面插入/设置块。如何有效地在每个现有语句中添加“N”?

update table 
set name = N 'name'

如果你说任何帮助,我真的很感激。

1 个答案:

答案 0 :(得分:1)

CF方面:

CFBuilder 2或任何体面的文本编辑器会为您插入UTF-8 BOM,UTF-8可以立即在CF中使用。如果你的文本编辑器不支持插入BOM,那就像你说的那样,使用<cfprocessingDirective>(作为最后的手段)

SQL方面:

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

对于CF9或更低版本,在CF Admin中设置数据源时,字符串格式 - 为配置为非拉丁字符的数据源启用高位ASCII字符和Unicode

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