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時,返回結果為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。