IS_ENCODING

判断输入的字符串str是否可以从指定的一个字符集from_encoding转为另一个字符集to_encoding。也可以用于判断输入是否为乱码,通常您可以将from_encoding设为UTF-8,to_encoding设为GBK。

命令格式

boolean is_encoding(string <str>, string <from_encoding>, string <to_encoding>)

参数说明

  • str:必填。STRING类型。空字符串可以被认为属于任何字符集。

  • from_encodingto_encoding:必填。STRING类型,源及目标字符集。

返回值说明

返回BOOLEAN类型。返回规则如下:

  • 如果str能够成功转换,则返回True,否则返回False。

  • from_encodingto_encoding值为NULL时,报错。

使用示例

  • 示例1:判断字符测试測試是否可以从utf-8字符集转为gbk字符集。命令示例如下。

    --返回true。
    select is_encoding('测试', 'utf-8', 'gbk');
    --返回true。
    select is_encoding('測試', 'utf-8', 'gbk');
  • 示例2:判断字符測試是否可以从utf-8字符集转为gb2312字符集。命令示例如下。

    --GB2312字库中不包括这两个字,返回false。
    select is_encoding('測試', 'utf-8', 'gb2312');
  • 示例3:任一输入参数为NULL。命令示例如下。

    --返回NULL。
    select is_encoding('测试', null, 'gbk');

相关函数

IS_ENCODING函数属于字符串函数,更多查找字符串、转换字符串格式的相关函数请参见字符串函数