uuencode() 函数

uuencode()函数使用 UNIX UUencode 格式将二进制值编码为 ASCII 码。

编码将二进制值转换为 32 及以上范围的 ASCII 字符编码。 从历史上看,uuencoding 用于对要通过电子邮件传输的文件进行编码。 uudecode()函数与 "uuencode()函数的效果相反,完全重新创建原始二进制文件。

uuencode()函数算法执行以下任务:
  1. 将二进制值分成三组字节(24 位),必要时在二进制值末尾添加零,以创建最终的三组字节。
  2. 将 24 比特分成四组,每组六个比特。 这样就产生了 0 - 63 范围内的四个十进制数。
  3. 在每个数字上添加十进制 32,以创建 32(空格)- 95(下划线)范围内的 ASCII 字符。
步骤 "1如下表所示,该表显示了输入值 "帽子的每个字符是如何被处理成字节的。
表 1. uuencode() 函数算法任务,第一部分
值类型 输入字符 输入字符 输入字符
原始 ASCII 输入 h a t
ASCII 十进制 104 97 116
ASCII 二进制(8 位) 01101000 01100001 01110100

下表说明了步骤2和步骤3。 下表第一行显示了将上表中的三个 8 位 ASCII 二进制值转换为四个 6 位二进制值的过程。

表 2. uuencode() 函数算法任务,第二部分
值类型 输入值 输入值 输入值 输入值
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)