uuencode() 函数
uuencode()函数使用 UNIX UUencode 格式将二进制值编码为 ASCII 码。
编码将二进制值转换为 32 及以上范围的 ASCII 字符编码。 从历史上看,uuencoding 用于对要通过电子邮件传输的文件进行编码。 uudecode()函数与 "uuencode()函数的效果相反,完全重新创建原始二进制文件。
uuencode()函数算法执行以下任务:
- 将二进制值分成三组字节(24 位),必要时在二进制值末尾添加零,以创建最终的三组字节。
- 将 24 比特分成四组,每组六个比特。 这样就产生了 0 - 63 范围内的四个十进制数。
- 在每个数字上添加十进制 32,以创建 32(空格)- 95(下划线)范围内的 ASCII 字符。
步骤 "1如下表所示,该表显示了输入值 "帽子的每个字符是如何被处理成字节的。
| 值类型 | 输入字符 | 输入字符 | 输入字符 |
|---|---|---|---|
| 原始 ASCII 输入 | h | a | t |
| ASCII 十进制 | 104 | 97 | 116 |
| ASCII 二进制(8 位) | 01101000 | 01100001 | 01110100 |
下表说明了步骤2和步骤3。 下表第一行显示了将上表中的三个 8 位 ASCII 二进制值转换为四个 6 位二进制值的过程。
| 值类型 | 输入值 | 输入值 | 输入值 | 输入值 |
|---|---|---|---|---|
| 6 位二进制 | 011010 | 000110 | 000101 | 110100 |
| 十进制等价物 | 26 | 6 | 5 | 52 |
| 十进制 + 32 | 58 | 38 | 37 | 84 |
| Uuencoding | : | & | % | T |
语法
uuencode函数的语法如下:
varchar = uuencode(varchar input);
nvarchar = uuencode(nvarchar input);
input值指定要编码的二进制值。
退货
函数返回一个编码字符串。
对于 "uuencode()和 "uudecode()函数,开始/结束标头信息非常重要。 如果从 "uuencode()函数的输出中移除标头信息,并将编码字符串传递给 "uudecode()函数,"uudecode()函数将返回ERROR: 0 : Invalid UUData.
示例
select uuencode ('hat');
UUENCODE
--------------------
begin
#:&%T
'
end
(1 row)