URL 或 XML 文檔中的特殊字元

來源:互聯網
上載者:User

特殊字元 一些字元在 URL 或 XML 文檔中使用時有特殊的含義,因此必須針對這些含義對字元做適當編碼以使其生效。

URL 中的特殊字元 在 URL 上執行的查詢中,特殊字元被指定為 %xx,其中 xx 是字元的十六進位值。下表列出了這些特殊字元並描述了它們的含義。有關更多資訊,請參見 http://www.faqs.org/rfcs/rfc1738.html 中的 RFC1738 規範。

特殊字元


特殊含義

十六進位值

+

表示空格(在 URL 中不能使用空格)。

%2B

/

分隔目錄和子目錄。

% 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 規範。

特殊字元

特殊含義

實體編碼

>

開始標記。

&gt;

<

結束標記。

&lt;

"

引號。

&quot;

'

撇號。

&apos;

&

"&"符。

&amp;

例如,考察下面的查詢:
SELECT TOP 2 * FROM [Order Details] WHERE UnitPrice < 10 FOR XML AUTO
因為 < 字元在 XML 中有特殊含義,所以當在某模板(一個 XML 文檔)中指定該查詢時,必須將該字元編碼為 &gt;。以下就是含有該查詢的模板: <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:query>
SELECT top 2 * FROM [Order Details] WHERE UnitPrice &lt; 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 &lt; 10
      FOR XML AUTO
   </sql:query>
</ROOT>
在此例中,(為 < 標記字元指定的)實體編碼 &lt; 內的 & 字元在 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>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.