UTF-16

  • Автор темы Автор темы e_moon
  • Дата начала Дата начала

e_moon

Новичок
Здравствуйте,
объясните мне что за фигня, в каком же виде UTF-16 хранит латинские символы алфавита??

PHP:
$str=iconv('cp1251','utf-8','test string');
print '<pre>';
preg_match('/string/',$str,$matches);
print 'search: ';
var_dump($matches);

Результат:
PHP:
search: array(1) {
  [0]=>
  string(6) "string"
}

а если:
PHP:
$str=iconv('cp1251','utf-16','test string');
print '<pre>';
preg_match('/string/',$str,$matches);
print 'search: ';
var_dump($matches);

то:
PHP:
search: array(0) {
}
 
Хотя бы var_dump($str); не приходило в голову сделать для начала?
 
в utf-16 добавляется '\0' после каждого символа.
отсюда
Ух ты... Спасибо.
Так получается ок:
PHP:
preg_match('/string/',str_replace("\00", Null, $str),$matches);

P.S. А вообще '\0' после каждого символа - это тема чисто UTF-16? Выходит, таким способом можно даже проверять, что строка в UTF-16, не привязываясь к BOM?
 
Сверху