後続の計算で使用するために、指定されたエンコーディング形式のバイナリデータを UTF-8 エンコード文字列に変換します。このトピックでは、FROM_CHARSET 関数の構文とパラメーターについて説明し、この関数の使用例を示します。
構文
STRING FROM_CHARSET(binary <source>, string <source_charset>, [string <mode>])パラメーター
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');例 2:GBK エンコードされたバイナリデータを UTF-8 エンコード文字列に変換します。
SELECT FROM_CHARSET(unhex('b9feb9febac3a4ce'), 'GBK');例 3:入力パラメーターが NULL の場合、NULL が返されます。
SELECT FROM_CHARSET(unhex('b9feb9febac3a4ce'), null);次の結果が返されます:
+------------+ | _c0 | +------------+ | NULL | +------------+
UNHEX 関数は、16 進数文字列が表す文字列 (バイナリデータ) を返します。詳細については、「UNHEX」をご参照ください。
関連ドキュメント
前述の組み込み関数がビジネス要件を満たさない場合、MaxCompute はユーザー定義関数 (UDF) もサポートしています。UDF の詳細については、「概要」をご参照ください。
MaxCompute SQL に関するよくある質問は、次のトピックをご参照ください。
MaxCompute の組み込み関数に関する一般的なエラーとよくある質問は、次のトピックをご参照ください。