is_unicode

(PHP 6 >= 6.0.0)

is_unicode - определяет, является ли переменная строкой в формате Unicode.

Описание

bool is_unicode ( mixed var )

Определяет, является ли переменная строкой в формате Unicode.

var - Переменная для анализа

Возвращает TRUE, если var является строкой в формате Unicode, FALSE - в ином случае.

Пример использования is_unicode()

// Declare a unicode string
$unicode = 'This is a unicode string';

// Declare a binary string
$binary = b'This is a binary string';

var_dump(is_unicode($unicode), is_unicode($binary));
bool(true) bool(false)

Эмулятор функции is_unicode()

// Функция проверки является ли переменная строкой в Юникоде 
// Если штатная функция не определена, то применить нашу
if (!function_exists('is_unicode')) {
  function is_unicode($str) {
    for ($i=0; $i<strlen($str); $i++) {
      // Если символ с кодом больше 191, то возможно это юникод
      if (ord($str[$i])>191) {
        // Следующий символ должен быть в интервале
        // 10000000b ... 10111111b (128...191)
        if (ord($str[($i+1)])<128 || ord($str[($i+1)])>191) {
          // Условие не выполнено, значит это не юникод
          return false;
        }
        else {
          // Пропускаем один байт, т.к. он является частью символа
          $i++;
        }
      }
    }
    // Проверка пройдена, это юникод
    return true;
  }
}

Смотрите также: is_binary(), is_buffer(), is_string(), unicode_encode().

Все функции строки
Описание на ru2.php.net
Описание на php.ru