src/Drupal/Component/Utility/Unicode.php
public static function check() {
    // Check for mbstring extension.
    if (!function_exists('mb_strlen')) {
      static::$status = static::STATUS_SINGLEBYTE;
      return 'mb_strlen';
    }

    // Check mbstring configuration.
    if (ini_get('mbstring.func_overload') != 0) {
      static::$status = static::STATUS_ERROR;
      return 'mbstring.func_overload';
    }
    if (ini_get('mbstring.encoding_translation') != 0) {
      static::$status = static::STATUS_ERROR;
      return 'mbstring.encoding_translation';
    }
    // mbstring.http_input and mbstring.http_output are deprecated and empty by
    // default in PHP 5.6.
    if (version_compare(PHP_VERSION, '5.6.0') == -1) {
      if (ini_get('mbstring.http_input') != 'pass') {
        static::$status = static::STATUS_ERROR;
        return 'mbstring.http_input';
      }
      if (ini_get('mbstring.http_output') != 'pass') {
        static::$status = static::STATUS_ERROR;
        return 'mbstring.http_output';
      }
    }

    // Set appropriate configuration.
    mb_internal_encoding('utf-8');
    mb_language('uni');
    static::$status = static::STATUS_MULTIBYTE;
    return '';
  }
public static function check() {
    // Check for mbstring extension.
    if (!function_exists('mb_strlen')) {
      static::$status = static::STATUS_SINGLEBYTE;
      return 'mb_strlen';
    }

    // Check mbstring configuration.
    if (ini_get('mbstring.func_overload') != 0) {
      static::$status = static::STATUS_ERROR;
      return 'mbstring.func_overload';
    }
    if (ini_get('mbstring.encoding_translation') != 0) {
      static::$status = static::STATUS_ERROR;
      return 'mbstring.encoding_translation';
    }
    // mbstring.http_input and mbstring.http_output are deprecated and empty by
    // default in PHP 5.6.
    if (version_compare(PHP_VERSION, '5.6.0') == -1) {
      if (ini_get('mbstring.http_input') != 'pass') {
        static::$status = static::STATUS_ERROR;
        return 'mbstring.http_input';
      }
      if (ini_get('mbstring.http_output') != 'pass') {
        static::$status = static::STATUS_ERROR;
        return 'mbstring.http_output';
      }
    }

    // Set appropriate configuration.
    mb_internal_encoding('utf-8');
    mb_language('uni');
    static::$status = static::STATUS_MULTIBYTE;
    return '';
  }
public static function check ( ) { // Check for mbstring extension. if ( ! function_exists ( 'mb_strlen' ) ) { static :: $ status = static :: STATUS_SINGLEBYTE ; return 'mb_strlen' ; } // Check mbstring configuration. if ( ini_get ( 'mbstring.func_overload' ) != 0 ) { static :: $ status = static :: STATUS_ERROR ; return 'mbstring.func_overload' ; } if ( ini_get ( 'mbstring.encoding_translation' ) != 0 ) { static :: $ status = static :: STATUS_ERROR ; return 'mbstring.encoding_translation' ; } // mbstring.http_input and mbstring.http_output are deprecated and empty by // default in PHP 5.6. if ( version_compare ( PHP_VERSION , '5.6.0' ) == - 1 ) { if ( ini_get ( 'mbstring.http_input' ) != 'pass' ) { static :: $ status = static :: STATUS_ERROR ; return 'mbstring.http_input' ; } if ( ini_get ( 'mbstring.http_output' ) != 'pass' ) { static :: $ status = static :: STATUS_ERROR ; return 'mbstring.http_output' ; } } // Set appropriate configuration. mb_internal_encoding ( 'utf-8' ) ; mb_language ( 'uni' ) ; static :: $ status = static :: STATUS_MULTIBYTE ; return '' ; }
Checks for Unicode support in PHP and sets the proper settings if possible.

Because of the need to be able to handle text in various encodings, we do
not support mbstring function overloading. HTTP input/output conversion
must be disabled for similar reasons.

@return string
A string identifier of a failed multibyte extension check, if any.
Otherwise, an empty string.
Checks for Unicode support in PHP and sets the proper settings if possible .