对 SQL Server 标识符进行编码和解码
SQL Server 分隔标识符有时候包含 Windows PowerShell 路径名称中不支持的字符。 可以通过对其十六进制值进行编码来指定这些字符。
**准备工作:**限制和局限
**处理特殊字符:**对标识符进行编码、对标识符进行解码
准备工作
对于 Windows PowerShell 路径名称中不支持的字符,可以表示或编码为“%”字符后跟代表该字符的位模式的十六进制值(如“**%**xx”)。 对于 Windows PowerShell 路径中不支持的字符,始终可以使用编码来处理字符。
Encode-SqlName cmdlet 将 SQL Server 标识符作为输入。 它输出一个字符串,其中包含所有不受 Windows PowerShell 语言支持且已经用“%xx”编码的字符。 Decode-SqlName cmdlet 将经过编码的 SQL Server 标识符作为输入并返回初始标识符。
限制和局限
Encode-Sqlname 和 Decode-Sqlname cmdlet 仅对 SQL Server 分隔标识符中允许、但在 PowerShell 路径中不支持的字符进行编码和解码。 下面的字符可以由 Encode-SqlName 编码且由 Decode-SqlName 解码:
字符 |
\ |
/ |
: |
% |
< |
> |
* |
? |
[ |
] |
| |
十六进制编码 |
%5C |
%2F |
%3A |
%25 |
%3C |
%3E |
%2A |
%3F |
%5B |
%5D |
%7C |
[返回页首]
对标识符进行编码
对 PowerShell 路径中的 SQL Server 标识符进行编码
使用以下两种方法之一对 SQL Server 标识符进行编码:
使用语法 %XX(其中,XX 是十六进制代码)为不支持的字符指定十六进制代码。
将标识符以带引号的字符串的形式传递到 Encode-Sqlname cmdlet
示例(编码)
此示例指定“:”字符 (%3A) 的编码版本:
Set-Location Table%3ATest
或者,可以使用 Encode-SqlName 生成由 Windows PowerShell 支持的名称:
Set-Location (Encode-SqlName "Table:Test")
[返回页首]
对标识符进行解码
对 PowerShell 路径中的 SQL Server 标识符进行解码
使用 Decode-Sqlname cmdlet 可用编码表示的字符替代十六进制编码。
示例(解码)
下面的示例返回“Table:Test”:
Decode-SqlName "Table%3ATest"
[返回页首]