![](/img/trans.png)
[英]How to select column name with special character for dynamic pivot - SQL Server
[英]cfinvokeargument with special character not working in SELECT
我有一個 cfinvoke:
<cfinvoke component="cfcs.people" method="getPerson">
<cfinvokeargument name="name" value="José">
</cfinvoke>
還有一個 function:
<cffunction name="getPerson" access="remote" returntype="any">
<cfargument name="name" type="string">
<cfquery name="qry" datasource="#datasource#">
SELECT id
FROM people
WHERE name = <cfqueryparam value="#name#" cfsqltype="CF_SQL_NVARCHAR">
</cfquery>
<cfreturn qry>
</cffunction>
我在people
表中有一行name
為“José”,但是 cfinvoke 不返回這一行。 任何不包含特殊字符的名稱都有效,但任何具有特殊字符的名稱都不會返回任何行。
是什么導致特殊字符破壞 SELECT,我該如何解決?
嘗試在 a.cfm 腳本中只輸出文字字符串
José
如果瀏覽器顯示下面的亂碼字符串,那么這是一個文件編碼問題,而不是cfinvoke
或cffunction
的問題
José
要解決它,請在腳本頂部將編碼設置為 UTF-8:
<cfprocessingdirective pageencoding="utf-8">
您還可以使用 jvm arg -Dfile.encoding=UTF-8
全局更改整個 jvm。
值得注意的是,cfprocessingdirective 經常被誤解。 此處需要它的唯一原因是因為文字字符串José
嵌入在 cfm 源中。 如果該字符串最終將被替換為表單字段,那么您將不需要該指令。 原始代碼可以正常工作。
<!--- works in modern versions of CF -->
<cfinvoke component="cfcs.people" method="getPerson">
<cfinvokeargument name="name" value="#form.name#">
</cfinvoke>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.