[PHP] Как задать Unicode-символ в строке?
а chr(0xFFFC) не?
может есть какого-нибудь charFromInteger(0xFFFC)?
chr(0xFFFC)А chr умеет работать с Unicode разве? Проблема вроде ровно в том, что PHP не поддерживает нативно Unicode.
http://php.net/chr
chr with unicode supportи там еще есть примеры
<?php
function uchr ($codes) {
if (is_scalar($codes $codes= func_get_args;
$str= '';
foreach ($codes as $code) $str.= html_entity_decode('&#'.$code.';',ENT_NOQUOTES,'UTF-8');
return $str;
}
echo uchr(23383); echo '<br/>';
echo uchr(23383,215,23383); echo '<br/>';
echo uchr(array(23383,215,23383,215,23383; echo '<br/>';
?>
chr
$c = chr(0xFFFC);
print ord( $c );
Выдаёт 252
жесть!
надо задать в исходниках переменную, содержащую символ U+FFFCНу и говоришь $var = "*", где * - символ FFCC. Какая разница, какой язык-то?
Ну и говоришь $var = "*", где * - символ FFCC. Какая разница, какой язык-то?
Можно конечно записать сам символ как последовательность байт, но большинство редакторов будет его игнорировать или заменять на другой символ.
Ну тогда $var = chr(0xff).chr(0xcc)?
Ты стандарт юникода читал? U+FFFC в UTF-8 записывается не меньше чем тремя байтам, и они совсем не \xFF\xFC. А забивать в код никому непонятные байты, которые неочевидно как в код символа переводить - моветон.
Ты стандарт юникода читал?Похоже, непрочтённым мной оказался первый пост треда...
Более того, из-за этого нельзя писать исходники в UTF-16, например.

автор программы о них знает, и может подобрать нужную последовательность байтНу, так ровно этого автор и не хочет делать. Т.е. он хочет написать что-то типа "\uFFFC", а PHP должен сам узнать, что исходник у нас в UTF-8 и преобразовать это в три байта "\xEF\xBF\xBC". Но для этого PHP должен знать в какой кодировке у него исходный текст (или в какую кодировку переводить такие последовательности).
Понятно. Так, видимо, не получится.
Оставить комментарий
sbs-66
В очередной раз убедился в убогости PHP. Есть такая задача - надо задать в исходниках переменную, содержащую символ U+FFFC. Кодировка исходников UTF-8.В нормальных языках это делается так '\uFFFC'. Однако PHP такого синтаксиса не знает. Можно конечно записать сам символ как последовательность байт, но большинство редакторов будет его игнорировать или заменять на другой символ.
Пока не придума ничего лучше, как записать "x\FFx\FC", перекодировать это из кодировки исходников (UTF-8) в ISO-8859-1, а полученную строку перекодировать из UTF-16BE в UTF-8. Но такой код даже писать чтоб проверить не хочется.
Может есть способ попроще?