представление расширенных символов ascii - PullRequest
1 голос
/ 13 января 2011

ASCII код символа é является десятичным 130 или шестнадцатеричным 82

$ é. верните значение 233! почему?

В более общем смысле, существует ли эта функция? f (13) вернуть $ \ r f (130 возврат é или $ é

Ответы [ 2 ]

3 голосов
/ 13 января 2011

Кодировка ISO-8859-1 для символа é действительно равна 233. Загадка раскрыта.

1 голос
/ 14 января 2011

$ X - просто синтаксический сахар для кода символа X. Изначально erlang использовал кодировку latin-1, но после R13A он начал реализовывать поддержку юникода.Современные выпуски теперь определяют $ X как синтаксический сахар для кодовой точки Unicode в X. Для вашего случая кодовая точка $ é такая же, как и в коде latin-1, так как unicode был разработан как расширенный набор символов latin-1.1003 *http://www.erlang.org/doc/apps/stdlib/unicode_usage.html#id60745

Будьте осторожны, когда думаете о юникоде.Кодовые точки Unicode - это просто числа, и они могут быть больше 255. Это означает, что им требуется какая-то кодировка для передачи в двоичные файлы (например, utf-8).

Что касается вашего второго вопроса, вы ненужна эта функция, $ \ r равна 13, просто протестируйте ее в своей оболочке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...