Сердечко видите? Подскажите будьте добры его ASCII код. А то среди символов с ASCII от 0 до 255 его нет. А начал брать символы с кодом >255, так символы начали повторяться.
Да, прикольно получилось В названии темы символ не ставится, а в тексте наоборот, не ставится его код. Но я не знаю что это за код в названии темы, а нужен его ASCII код, который можно было бы подставить в РНР-шную функцию chr() и увидеть этот символ.
Не уверен. В ASCII я так понял вообще символов нет, а есть только коды (числа). Или я не прав и есть и ASCII-символы и ASCII-коды?
флоппик, спасибо! Значит есть и ASCII-символы и ASCII-коды. У интересующего меня ASCII-символа ♥ согласно твоей таблицы ASCII-код - 3. А не подскажешь, почему когда я делаю вот так: Код (Text): echo chr(3); на экране вижу не этот символ, а квадратик?
Потому что ASCII-коды в именовании современных кодировок, это во первых cp866 А во вторых, символы до кода 32 вообще печатными не являются )))
А почему если этот символ непечатный мы его здесь видим, а через echo я его не могу увидеть? ♥ Как все сложно с этими кодировками
Потому что это не ASCII символ, поэтому и видишь. Символ ♥ имеет кодовый номер 9829 в кодовой таблице UTF-8 .
Я сейчас задам вопрос, но ты только не кипятись, ок? Вот ты говоришь, что это не ASCII-символ и в то же время приводишь таблицу ASCII-сиволов в которой он присутствует. Как такое может быть??
Эт мой искрометный юмор, типа. В ASCII этого символа как-бы не было. Точнее, не как бы, а до #32 символа — пробела, шли управляющие выводом коды (в частности, делет, таб, и прочие). Но это было очень-очень мало - 255 символов Поэтому при графическом выводе эти символы начали использовать. Примерно так.
Прочитал и как говорится - понял ничего Это все-таки на данный момент ASCII-символ или нет? Если да, то как зная что его ASCII-код 3, этот символ выдать на дисплей и узреть?
Нет такого в ASCII-кодировках. Так тут все однозначно. Каждому коду соответствует символ. Таблица соответствия называется кодировкой. Ну, cp866 лишь частный случай, также как и cp1251 (windows-1251) и прочие. Собственно, ASCII-кодировка - это кодировка, которая в кодах 0-127 соотвествует ASCII, плюс 8-й бит под некий набор символов, часто локальный. Точно, управляющие. А то, что какая-либо программа их как-то отображает - это ее личное дело Точно, UTF-8 спасет этот мир
Ну теперь в целом стало ясно. Значит в ASCII-кодировке такого символа нет, но он есть в UTF-8... А может этот символ в UTF-8 быть закодирован разными кодами? Вот здесь в теме фигурирует его код & #9829; а еще я видел страничку в UTF-8 с этим символом, но в исходном коде этой странички он был записан вот так: ♥ Зачем так сделано что два разных кода для одного символа?
Скажем — официально нет. Для частоупотребимых символов в HTML(и иже с ним) есть словесные менмоники, как ♥ например. Они независимы от кодировки. А вообще, в уникоде, символ может иметь двойной код для его отображения. Например, любую букву со знаком акута (ударения) можно нарисовать, введя подряд собственно, символ акута и нужный символ.
А в РНР есть функции которые знают о существовании этих словесных мнемоник и могут их выдавать при кодировании? Имеешь ввиду знак ударения над буквой? Но тогда буква со знаком ударения над ней и буква без него - это на мой взгляд разные символы...
Это не в юникоде так сделано - это в SGML'е есть такие конструкции: "&что-то;". Если что-то - циферки, то это означает, что надо вывести символ с указанным кодом в соответствии с кодировкой UTF-8. Есть, как сказал Олег, несколько буквенных мнемоник: nbsp для неразрывного пробела (non-break space), amp для непосредственно символа амперсанда, lquote и rquote для кавычек-елочек, hearts - для сердечка. Конструкции эти нужны для двух вещей: 1. вводить символы < и >; 2. обходить ограничения кодировок, в которых нет нужных символов. Второе при использовании UTF-8 становится ненужным. Это не только в юникоде. Т.е. такой способ ввода, да, в юникоде. В том же ASCII использовалась комбинация символ-бэкспейс-хрень для ударений, умляутов и т.п.