Попытка получить символ евро с помощью chr(128)

Я ожидал этот код:

define('EURO_SIMBOLO', chr(128));
$euro = EURO_SIMBOLO;
var_dump($euro);

чтобы показать символ , но это не так. Почему это происходит?


person ziiweb    schedule 03.02.2011    source источник
comment
Это зависит от используемого набора символов. В какой кодировке ваши страницы?   -  person Pekka    schedule 03.02.2011
comment
Привет, Пекка, как узнать кодировку моих страниц?   -  person ziiweb    schedule 03.02.2011
comment
@user меню кодировки или набора символов браузера будет иметь галочку на кодировке, которую он использует в данный момент.   -  person Pekka    schedule 03.02.2011
comment
Символ евро отсутствует в Latin-1. Однако он имеет представление в ISO-8859-15 (Latin-9), и тогда код будет \xA4 или 164.   -  person mario    schedule 03.02.2011


Ответы (5)


Если вы хотите использовать Unicode, точнее UTF-8, который я предпочитаю из-за его гибкости, вы можете вывести знак евро, используя:

echo "\xE2\x82\xAc"; // 3 bytes-long multibyte character
person netcoder    schedule 03.02.2011

Это будет работать, только если вы используете кодовую страницу 125x. Дело в том, что символ евро не входит в все расширенные наборы символов ASCII (введенные в ISO/IEC 8859-15), однако де-факто он является символом Unicode.

Если это просто для отображения в браузере, рассмотрите возможность использования '€' или '€'

person Leigh    schedule 03.02.2011

Вместо € (alt + 0128)

переключите свой код евро на

€
person EagleScream    schedule 25.08.2013

Если вы используете такой набор символов с символом евро, вы, скорее всего, используете iso-8859-15, в котором символ «€» определен в позиции 164. Таким образом, вам может повезти больше, если вы замените 128 на 164, хотя это не поможет вам в средах utf-8, в которых предыдущий ответ может быть более подходящим.

person rumpel    schedule 03.02.2011

В кодировке CP1252 € имеет код 128; В ISO-8859-15 используется код 164; Макинтошу Роману 219 лет;

Знак евро является частью ASCII. Посмотрите, что http://www.ascii-code.com/

person Gustavo Costa De Oliveira    schedule 03.02.2011
comment
Вы говорили набор символов ASCII (от 0 до 255), он включает расширенную таблицу (от 128 до 255), добавленную до 1986 года. Знак евро является первым символом расширенной таблицы (128) - person Gustavo Costa De Oliveira; 03.02.2011