指定されたエンコード形式のバイナリデータを、後続の計算用にUTF-8エンコード文字列に変換します。 このトピックでは、FROM_CHARSET関数の構文とパラメーターについて説明し、この関数の使用方法の例を示します。
構文
STRING FROM_CHARSET(binary <source>, string <source_charset>, [string <mode>])
Parameters
source: 必須です。 BINARY型の値。 このパラメータは、変換するバイナリデータを指定します。
source_charset: 必須です。 STRING型の値。 このパラメーターは、sourceで指定されたバイナリデータの元のエンコード形式を指定します。 有効な値: UTF-8、UTF-16、UTF-16LE、UTF-16BE、ISO-8859-1、US-ASCII、GB2312、GBK、GB18030。
mode: オプション。 STRING型の値。 このパラメーターは、FROM_CHARSET関数がsourceで指定されたバイナリデータを指定されたエンコード形式の文字列に変換するときに文字を変換できない場合の処理モードを指定します。 有効な値:
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関数は、16進数の文字列で表される文字列を返します。 詳細については、「UNHEX」をご参照ください。
関連ドキュメント
上記の組み込み関数がビジネス要件を満たさない場合、MaxComputeはユーザー定義関数 (UDF) もサポートします。 UDFの詳細については、「概要」をご参照ください。
MaxCompute SQLに関するFAQの詳細については、以下のトピックを参照してください。
MaxComputeの組み込み関数に関する一般的なエラーとFAQの詳細については、以下のトピックを参照してください。