判断输入的字符串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。
  • strfrom_encodingto_encoding值为NULL时,返回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');