XML 和 Internet 支持特殊字符<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一些字符在 URL 或 XML 文檔中使用時有特殊的含義,因此必須針對這些含義對字符做適當編碼以使其生效。
URL 中的特殊字符
在 URL 上執行的查詢中,特殊字符被指定爲 %xx,其中 xx 是字符的十六進制值。下表列出了這些特殊字符並描述了它們的含義。有關更多信息,請參見 http://www.faqs.org/rfcs/rfc1738.html 中的 RFC1738 規範。
特殊字符 |
|
十六進制值 |
+ |
表示空格(在 URL 中不能使用空格)。 |
%2B |
/ |
分隔目錄和子目錄。 |
%<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2F |
? |
分隔實際的 URL 和參數。 |
%3F |
% |
指定特殊字符。 |
%25 |
# |
表示書籤。 |
%23 |
& |
URL 中指定的參數間的分隔符。 |
%26 |
例如,考察下面的查詢:
SELECT *
FROM Employees
WHERE EmployeeID=?
因爲 ? 字符在 URL 中有特殊含義(分隔 URL 和傳遞的參數),所以在 URL 中指定該查詢時,該字符被編碼爲 %3F。
下列 URL 將執行該查詢。在 URL 中傳遞該參數值。有關用 HTTP 執行 SQL 語句的更多信息,請參見使用 HTTP 執行 SQL 語句。
http://IISServer/nwind?sql=SELECT * FROM Employees WHERE EmployeeID=%3F FOR XML AUTO&root=root&EmployeeID=1
瀏覽器將 ? 右側的所有特殊字符(如 + 字符)都進行轉義(即,將 ? 右側的 + 字符轉換成 %20)。
XML 中的特殊字符
> 和 < 這類字符是XML 標記字符,在 XML 中有特殊的含義。當在 SQL 查詢(或 XPath 查詢)中指定這些字符時,必須對它們進行適當的編碼(也稱爲實體編碼)。下表列出了這些特殊字符並描述了它們的含義。有關更多信息,請參見 XML 1.0 規範 中的 XML 1.0 規範。
特殊字符 |
特殊含義 |
實體編碼 |
>
|
開始標記。 |
> |
<
|
結束標記。 |
< |
" |
引號。 |
" |
' |
撇號。 |
' |
& |
"&"符。 |
& |
例如,考察下面的查詢:
SELECT TOP 2 *
FROM [Order Details]
WHERE UnitPrice < 10
FOR XML AUTO
因爲 < 字符在 XML 中有特殊含義,所以當在某模板(一個 XML 文檔)中指定該查詢時,必須將該字符編碼爲 >。以下就是含有該查詢的模板:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:query>
SELECT top 2 *
FROM [Order Details]
WHERE UnitPrice < 10
FOR XML AUTO
</sql:query>
</ROOT>
有關模板的更多信息,請參見使用模板執行 SQL 查詢和使用模板執行 XPath 查詢。
URL 編碼中的實體編碼
有時可能需要同時指定 URL 編碼與實體編碼。例如,可在 URL 中直接指定以下模板(而不是指定文件名):
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:query>
SELECT top 2 *
FROM [Order Details]
WHERE UnitPrice < 10
FOR XML AUTO
</sql:query>
</ROOT>
在此例中,(爲 < 標記字符指定的)實體編碼 < 內的 & 字符在 URL 中有特殊含義,需要對其進行進一步編碼。必須將 & 字符編碼爲 %26,否則在 URL 中將把它視爲參數分隔符。該 URL 於是被指定爲:
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>
請參見
使用用於 SQL Server 的 IIS 虛擬目錄管理實用工具