Автор Тема: Как узнать код символа  (Прочитано 725 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Oblie1968

  • Освоившийся
  • **
  • Сообщений: 28
    • Просмотр профиля
Как узнать код символа
« : Февраль 21, 2022, 04:23:34 pm »
Подскажите, как можно узнать код символа, ну, например, первого символа строки?
Функция CHAR (code) есть, а вот обратной функции я не нашёл.

Сама CHAR тоже работает странно с кодами 3, 34, 35, 39 (это ETX и символы восклицательный знак, кавычки, апостроф).
Попробуйте выполнить простой код:
Код: Clickermann
  1. $kod=34
  2. $str=char($kod)
  3. if ($str==char($kod))
  4.  print("Ok")
  5. else
  6.  print("Ups")  
  7. end_if
У вас ничего не получится, в 3 строке будет ошибка и скрипт остановится.
При этом если поставить любой другой код, то всё работает без проблем.

dramster

  • Герой форума
  • *****
  • Сообщений: 1134
    • Просмотр профиля
Re: Как узнать код символа
« Ответ #1 : Февраль 21, 2022, 04:49:23 pm »
Подскажите, как можно узнать код символа, ну, например, первого символа строки?
Функция CHAR (code) есть, а вот обратной функции я не нашёл.

Она есть, но в бета версии вот тут http://crapware.aidf.org/forum/index.php?topic=356.msg33512#msg33512 , CODE (char)

А ошибка в сравнении строк это было и ранее, строки это оно такое... По  ошибкам в работе пиши в той же теме по ошибкам и тестированию.

dramster

  • Герой форума
  • *****
  • Сообщений: 1134
    • Просмотр профиля
Re: Как узнать код символа
« Ответ #2 : Февраль 21, 2022, 05:55:49 pm »
Ах, да, вот как это выглядит.
Код: Clickermann
  1. $kod=34
  2. $str=char($kod)
  3. print($str)
  4.  
  5. if (code($str)==$kod)
  6.  print("Ok")
  7. else
  8.  print("Ups")  
  9. end_if
  10. halt

Oblie1968

  • Освоившийся
  • **
  • Сообщений: 28
    • Просмотр профиля
Re: Как узнать код символа
« Ответ #3 : Февраль 22, 2022, 12:28:00 am »
Она есть, но в бета версии вот тут http://crapware.aidf.org/forum/index.php?topic=356.msg33512#msg33512 , CODE (char)
А ошибка в сравнении строк это было и ранее, строки это оно такое... По  ошибкам в работе пиши в той же теме по ошибкам и тестированию.
Если в стабильной такие косяки, я даже представить не могу, что там в бетте.  :D
А что ещё там добавлено, кроме CODE, есть смысл эту бетту запускать?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3881
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: Как узнать код символа
« Ответ #4 : Февраль 22, 2022, 09:20:58 am »
Попробуйте выполнить простой код:
...
У вас ничего не получится, в 3 строке будет ошибка и скрипт остановится.

В 32 битной версии всё нормально, это только в 64-битной ошибка. Поэтому не использую x64 версию, там и других странностей хватает, которые давно пофиксили в x32.


Oblie1968

  • Освоившийся
  • **
  • Сообщений: 28
    • Просмотр профиля
Re: Как узнать код символа
« Ответ #5 : Март 14, 2023, 06:34:37 pm »
char() ругается на коды 3,34,35,36,39. На другие не ругается. Но то, что не ругается, не значит, что символы со всеми другими кодами читаются. Например, char(63), это знак рубля, вообще для char() - пустое место.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3881
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: Как узнать код символа
« Ответ #6 : Март 15, 2023, 10:12:32 am »
char() ругается на коды 3,34,35,36,39. На другие не ругается. Но то, что не ругается, не значит, что символы со всеми другими кодами читаются. Например, char(63), это знак рубля, вообще для char() - пустое место.

Версия 4.13.14 ни на что не ругается. Вот пруф



У кода "3" нет отображаемого символа. От 0 до 31 управляющие коды.
И с каких это пор 63 это символ рубля? В ASCII вообще нет символа рубля, а значит он не может быть из 1 байта. В юникоде его код 0x20BD
Код: Clickermann
  1. print(char(0x20BD))

Лог:
Цитировать
10:31:07 ₽
« Последнее редактирование: Март 15, 2023, 10:34:25 am от Vint »