MaxCompute FROM_CHARSET支持将指定编码格式的二进制数据转换为UTF-8格式的字符串,以便后续进行计算时使用。本文为您介绍FROM_CHARSET函数的命令格式、参数说明以及使用示例。
命令格式
STRING FROM_CHARSET(binary <source>, string <source_charset>, [string <mode>])
参数说明
source:必填,BINARY类型,待转换的二进制(Bytes)数据。
source_charset:必填,STRING类型,source参数原本的二进制数据编码格式。取值范围为:UTF-8、UTF-16、UTF-16LE、UTF-16BE、ISO-8859-1、US-ASCII、GB2312、GBK和GB18030。
mode:可选,STRING类型,将source的二进制(Bytes)数据转换成指定编码格式字符串时,若遇到无法对应的字符时,采取的处理模式。取值说明如下:
NONE(默认值):不做任何处理,提示报错。
TRANSLIT:使用指定编码格式中类似的字符替换。
IGNORE:忽略报错的内容,然后继续完成命令。
返回值
返回UTF-8编码格式的STRING类型数据。当参数为NULL或空字符串时,返回规则如下:
任意一个输入参数为NULL时,返回结果为NULL。
任意一个输入参数为空字符串时,返回报错。
使用示例
示例1:将UTF-8编码的二进制数据转换为UTF-8字符串。
SELECT FROM_CHARSET(unhex('e58aa0e6b2b9e9949fe696a4e68bb70a'),'UTF-8', 'TRANSLIT');
返回结果如下
+------------+ | _c0 | +------------+ | 加油锟斤拷 | +------------+
示例2:将GBK编码的二进制数据转换为UTF-8字符串。
SELECT FROM_CHARSET(unhex('b9feb9febac3a4ce'), 'GBK');
返回结果如下。
+------------+ | _c0 | +------------+ | 哈哈好の | +------------+
示例3:当输入参数为NULL时,返回结果为NULL。
SELECT FROM_CHARSET(unhex('b9feb9febac3a4ce'), null);
返回结果如下。
+------------+ | _c0 | +------------+ | NULL | +------------+
说明
UNHEX函数可以返回十六进制字符串所代表的字符串,详情请参见UNHEX。