特殊字符
字串2
|
特殊含義 字串6
|
十六進(jìn)制值 字串6
|
+
字串8
|
表示空格(在 URL 中不能使用空格)。
字串5
|
%2B
字串6
|
/
字串7
|
分隔目錄和子目錄。
字串7
|
%2F
字串7
|
?
字串2
|
分隔實(shí)際的 URL 和參數(shù)。
字串6
|
%3F
字串4
|
%
字串4
|
指定特殊字符。
字串2
|
%25
字串3
|
#
字串1
|
表示書簽。
字串6
|
%23
字串6
|
&
字串3
|
URL 中指定的參數(shù)間的分隔符。
字串8
|
%26
字串2
|
字串2
字串4
例如,考察下面的查詢:
字串6
SELECT *
字串8
FROM Employees
字串5
WHERE EmployeeID=?
字串6
因?yàn)?font face="Verdana"> ? 字符在 URL 中有特殊含義(分隔 URL 和傳遞的參數(shù)),所以在 URL 中指定該查詢時(shí),該字符被編碼為 %3F。
字串9
下列 URL 將執(zhí)行該查詢。在 URL 中傳遞該參數(shù)值。 字串5
http://IISServer/nwind?sql=SELECT * FROM Employees WHERE EmployeeID=%3F FOR
XML AUTO&root=root&EmployeeID=1
字串8
瀏覽器將 ? 右側(cè)的所有特殊字符(如 + 字符)都進(jìn)行轉(zhuǎn)義(即,將 ? 右側(cè)的 + 字符轉(zhuǎn)換成 %20)。
字串1
XML 中的特殊字符
> 和 < 這類字符是XML 標(biāo)記字符,在 XML 中有特殊的含義。當(dāng)在 SQL 查詢(或 XPath 查詢)中指定這些字符時(shí),
必須對(duì)它們進(jìn)行適當(dāng)?shù)木幋a(也稱為實(shí)體編碼)。下表列出了這些特殊字符并描述了它們的含義。有關(guān)更多信息,請(qǐng)參見
XML 1.0 規(guī)范 中的 XML 1.0 規(guī)范。 字串8
特殊字符 字串4
|
特殊含義
字串3
|
實(shí)體編碼
字串6
|
>
字串9
字串9
|
開始標(biāo)記。
字串4
|
>
字串4
|
<
字串6
字串8
|
結(jié)束標(biāo)記。
字串4
|
<
字串4
|
"
字串3
|
引號(hào)。
字串8
|
"
字串4
|
'
字串8
|
撇號(hào)。
字串3
|
'
字串5
|
&
字串3
|
"&"符。
字串8
|
&
字串9
|
字串5
字串3
例如,考察下面的查詢:
字串9
SELECT TOP 2 *
字串4
FROM [Order Details]
字串3
WHERE UnitPrice < 10
字串9
FOR XML AUTO
字串5
因?yàn)?font face="Verdana"> < 字符在 XML 中有特殊含義,所以當(dāng)在某模板(一個(gè) XML 文檔)中指定該查詢時(shí),必須將該字符編碼為 >。
以下就是含有該查詢的模板:
字串9
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
字串5
<sql:query>
字串1
SELECT top 2 *
字串6
FROM [Order Details]
字串2
WHERE UnitPrice < 10
字串3
FOR XML AUTO
字串5
</sql:query>
字串1
</ROOT>
字串7
URL 編碼中的實(shí)體編碼
字串3
有時(shí)可能需要同時(shí)指定 URL 編碼與實(shí)體編碼。例如,可在 URL 中直接指定以下模板(而不是指定文件名): 字串9
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
字串9
<sql:query>
字串9
SELECT top 2 *
字串8
FROM [Order Details]
字串1
WHERE UnitPrice < 10
字串9
FOR XML AUTO
字串7
</sql:query>
字串9
</ROOT>
字串1
在此例中,(為 < 標(biāo)記字符指定的)實(shí)體編碼 < 內(nèi)的 & 字符在 URL 中有特殊含義,需要對(duì)其進(jìn)行進(jìn)一步
編碼。必須將 & 字符編碼為 %26,否則在 URL 中將把它視為參數(shù)分隔符。該 URL 于是被指定為:
字串7
http://IISServer/nwind?template=<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:query>SELECT TOP 2 * FROM [Order Details] WHERE UnitPrice %26lt; 10 FOR XML AUTO
</sql:query></ROOT>
|