スコットの回答にコメントとして投稿していましたが、長くなりすぎたので...
ジョンは次のように書いています。
  次の例を実行すると、値が 0 になりますが、それはキー値全体であるべきだと思いますか?
<cfoutput>
    <cfset theUrl = "https://docs.google.com/spreadsheet/ccc?key=0AthiZNZ73LBndUzRTUkplbmNhYWc##gid=0" />
    <cfset theUrl = listRest(theUrl, "?")>
    <cfloop list="#theUrl#" index="URLPiece" delimiters="&">
        Key: #listFirst(urlPiece, "=")# Value: #listLast(urlPiece, "=")# <br />
    </cfloop>
</cfoutput>
この例の URL が失敗する理由は、ページ セグメント (ハッシュの後のビット) が含まれているためです。これは、クエリ文字列を解析する前に取り除く必要があります。
キー/値の部分を でラップして、正しい変数/値を取得することも重要ですUrlDecode。
さらに、値に等号を含めることは完全に許容されるため、値として?key==返す必要があります。=つまり、ListLastを aに変更し、trueListRestに設定includeEmptyFieldsします。
また、次のようなクエリ文字列がある場合?a&b、値をどちらかtrueまたは空の文字列に設定するのが慣例です。現在のコードはキー名に設定されていますが、これは間違っています。
要約すると、ここに関数があります:
<cffunction name="getParamsFromUrlString" returntype="Struct" output=false >
    <cfargument name="UrlString" type="String" required />
    <cfargument name="Separator" type="String" default="?" />
    <cfargument name="Delimiter" type="String" default="&" />
    <cfargument name="AssignOp"  type="String" default="=" />
    <cfargument name="EmptyVars" type="String" default="" />
    <cfset var QueryString = ListRest( ListFirst( Arguments.UrlString , '##' ) , Arguments.Separator ) />
    <cfset var Result = {} />
    <cfloop index="local.QueryPiece" list=#QueryString# delimiters="#Arguments.Delimiter#">
        <cfif NOT find(Arguments.AssignOp,QueryPiece)>
            <cfset Result[ UrlDecode( QueryPiece ) ] = Arguments.EmptyVars />
        <cfelse>
            <cfset Result[ UrlDecode( ListFirst(QueryPiece,Arguments.AssignOp) ) ]
                =  UrlDecode( ListRest(QueryPiece,Arguments.AssignOp,true) ) />
        </cfif>
    </cfloop>
    <cfreturn Result />
</cffunction>
次のように簡単に使用できます。
    <cfset theUrl = "https://docs.google.com/spreadsheet/ccc?key=0AthiZNZ73LBndUzRTUkplbmNhYWc##gid=0" />
    <cfset Data = getParamsFromUrlString( theUrl ) />
    <cfdump var=#Data# />
または、次のような複雑な非標準の URL 文字列で使用できます。
    <cfset theUrl = "https://somewhere/index.jsp;x:145;y:54;z:1;f;d:%23%23;w:%3B" />
    <cfset Data = getParamsFromUrlString( theUrl , ';' , ';' , ':' , 'true' ) />
    <cfdump var=#Data# />
そして(うまくいけば)その間のすべて。