Axiom Справочник языка

Справочник языка

Символы и их коды

Символ можно представить числом, а число — снова превратить в символ, и на этом построены многие задачи вывода и разбора текста. Axiom хранит строку как UTF-16, поэтому переход между символом и кодом выполняют две пары функций: ASC и CHR работают через таблицу CP866 для младших кодов, ASCW и CHRW — напрямую с Unicode. Выбор пары определяет, какой именно код получится на выходе.

Строка и код символа

Строка Axiom хранится как UTF-16. ASC и ASCW читают первую кодовую точку Unicode, а не обязательно один элемент UTF-16: символ вне основной многоязычной плоскости занимает два элемента UTF-16, но возвращает один код Unicode.

ASCW возвращает код Unicode, а CHRW создаёт символ по такому коду. ASC отдаёт код ASCII для значений ниже 128, код CP866 для символов, имеющихся в встроенной таблице, и код Unicode для остальных. CHR для кодов 0–127 использует ASCII, для 128–255 — таблицу CP866, а выше 255 — Unicode.

CHR и CHRW допускают коды от 0 до 1114111, кроме суррогатного диапазона 55296–57343; недопустимый код вызывает MB3007. ASC и ASCW не принимают пустую строку и в этом случае также вызывают MB3007. Для Unicode-обмена служат ASCW и CHRW, поскольку таблица CP866 меняет смысл кодов 128–255.

Пример разных кодов

Одна и та же буква получает разные коды в зависимости от выбранной функции, а код вне таблицы CP866 остаётся кодом Unicode:

PRINT ASC("А")
PRINT ASCW("А")
PRINT CHR(128)
PRINT CHRW(1040)
PRINT ASCW("😀")
PRINT LEN(CHRW(128512))

Ожидаемый вывод:

128
1040
А
А
128512
2

Буква «А» через ASC даёт 128 — позицию в таблице CP866, а через ASCW — 1040, её собственный код Unicode. Символ, построенный CHRW из 128512, занимает две кодовые единицы UTF-16, что и показывает LEN.

Таблица кодов 0–255 для CHR

Таблица приведена по RuntimeCharacterEncoding реализации Axiom. Управляющие коды не заменяются декоративными экранными значками; видимый эффект зависит от консоли или графического вывода.

КодШестнадцатеричный кодСимвол или имяЗначение
000hNULУправляющий код ASCII.
101hSOHУправляющий код ASCII.
202hSTXУправляющий код ASCII.
303hETXУправляющий код ASCII.
404hEOTУправляющий код ASCII.
505hENQУправляющий код ASCII.
606hACKУправляющий код ASCII.
707hBELУправляющий код ASCII.
808hBSУправляющий код ASCII.
909hTABУправляющий код ASCII.
100AhLFУправляющий код ASCII.
110BhVTУправляющий код ASCII.
120ChFFУправляющий код ASCII.
130DhCRУправляющий код ASCII.
140EhSOУправляющий код ASCII.
150FhSIУправляющий код ASCII.
1610hDLEУправляющий код ASCII.
1711hDC1Управляющий код ASCII.
1812hDC2Управляющий код ASCII.
1913hDC3Управляющий код ASCII.
2014hDC4Управляющий код ASCII.
2115hNAKУправляющий код ASCII.
2216hSYNУправляющий код ASCII.
2317hETBУправляющий код ASCII.
2418hCANУправляющий код ASCII.
2519hEMУправляющий код ASCII.
261AhSUBУправляющий код ASCII.
271BhESCУправляющий код ASCII.
281ChFSУправляющий код ASCII.
291DhGSУправляющий код ASCII.
301EhRSУправляющий код ASCII.
311FhUSУправляющий код ASCII.
3220hПробелСимвол ASCII.
3321h!Символ ASCII.
3422h"Символ ASCII.
3523h#Символ ASCII.
3624h$Символ ASCII.
3725h%Символ ASCII.
3826h&Символ ASCII.
3927h'Символ ASCII.
4028h(Символ ASCII.
4129h)Символ ASCII.
422Ah*Символ ASCII.
432Bh+Символ ASCII.
442Ch,Символ ASCII.
452Dh-Символ ASCII.
462Eh.Символ ASCII.
472Fh/Символ ASCII.
4830h0Символ ASCII.
4931h1Символ ASCII.
5032h2Символ ASCII.
5133h3Символ ASCII.
5234h4Символ ASCII.
5335h5Символ ASCII.
5436h6Символ ASCII.
5537h7Символ ASCII.
5638h8Символ ASCII.
5739h9Символ ASCII.
583Ah:Символ ASCII.
593Bh;Символ ASCII.
603Ch<Символ ASCII.
613Dh=Символ ASCII.
623Eh>Символ ASCII.
633Fh?Символ ASCII.
6440h@Символ ASCII.
6541hAСимвол ASCII.
6642hBСимвол ASCII.
6743hCСимвол ASCII.
6844hDСимвол ASCII.
6945hEСимвол ASCII.
7046hFСимвол ASCII.
7147hGСимвол ASCII.
7248hHСимвол ASCII.
7349hIСимвол ASCII.
744AhJСимвол ASCII.
754BhKСимвол ASCII.
764ChLСимвол ASCII.
774DhMСимвол ASCII.
784EhNСимвол ASCII.
794FhOСимвол ASCII.
8050hPСимвол ASCII.
8151hQСимвол ASCII.
8252hRСимвол ASCII.
8353hSСимвол ASCII.
8454hTСимвол ASCII.
8555hUСимвол ASCII.
8656hVСимвол ASCII.
8757hWСимвол ASCII.
8858hXСимвол ASCII.
8959hYСимвол ASCII.
905AhZСимвол ASCII.
915Bh[Символ ASCII.
925Ch\Символ ASCII.
935Dh]Символ ASCII.
945Eh^Символ ASCII.
955Fh_Символ ASCII.
9660h`Символ ASCII.
9761haСимвол ASCII.
9862hbСимвол ASCII.
9963hcСимвол ASCII.
10064hdСимвол ASCII.
10165heСимвол ASCII.
10266hfСимвол ASCII.
10367hgСимвол ASCII.
10468hhСимвол ASCII.
10569hiСимвол ASCII.
1066AhjСимвол ASCII.
1076BhkСимвол ASCII.
1086ChlСимвол ASCII.
1096DhmСимвол ASCII.
1106EhnСимвол ASCII.
1116FhoСимвол ASCII.
11270hpСимвол ASCII.
11371hqСимвол ASCII.
11472hrСимвол ASCII.
11573hsСимвол ASCII.
11674htСимвол ASCII.
11775huСимвол ASCII.
11876hvСимвол ASCII.
11977hwСимвол ASCII.
12078hxСимвол ASCII.
12179hyСимвол ASCII.
1227AhzСимвол ASCII.
1237Bh{Символ ASCII.
1247Ch|Символ ASCII.
1257Dh}Символ ASCII.
1267Eh~Символ ASCII.
1277FhDELУправляющий код ASCII.
12880hАСимвол таблицы CP866 реализации Axiom.
12981hБСимвол таблицы CP866 реализации Axiom.
13082hВСимвол таблицы CP866 реализации Axiom.
13183hГСимвол таблицы CP866 реализации Axiom.
13284hДСимвол таблицы CP866 реализации Axiom.
13385hЕСимвол таблицы CP866 реализации Axiom.
13486hЖСимвол таблицы CP866 реализации Axiom.
13587hЗСимвол таблицы CP866 реализации Axiom.
13688hИСимвол таблицы CP866 реализации Axiom.
13789hЙСимвол таблицы CP866 реализации Axiom.
1388AhКСимвол таблицы CP866 реализации Axiom.
1398BhЛСимвол таблицы CP866 реализации Axiom.
1408ChМСимвол таблицы CP866 реализации Axiom.
1418DhНСимвол таблицы CP866 реализации Axiom.
1428EhОСимвол таблицы CP866 реализации Axiom.
1438FhПСимвол таблицы CP866 реализации Axiom.
14490hРСимвол таблицы CP866 реализации Axiom.
14591hССимвол таблицы CP866 реализации Axiom.
14692hТСимвол таблицы CP866 реализации Axiom.
14793hУСимвол таблицы CP866 реализации Axiom.
14894hФСимвол таблицы CP866 реализации Axiom.
14995hХСимвол таблицы CP866 реализации Axiom.
15096hЦСимвол таблицы CP866 реализации Axiom.
15197hЧСимвол таблицы CP866 реализации Axiom.
15298hШСимвол таблицы CP866 реализации Axiom.
15399hЩСимвол таблицы CP866 реализации Axiom.
1549AhЪСимвол таблицы CP866 реализации Axiom.
1559BhЫСимвол таблицы CP866 реализации Axiom.
1569ChЬСимвол таблицы CP866 реализации Axiom.
1579DhЭСимвол таблицы CP866 реализации Axiom.
1589EhЮСимвол таблицы CP866 реализации Axiom.
1599FhЯСимвол таблицы CP866 реализации Axiom.
160A0hаСимвол таблицы CP866 реализации Axiom.
161A1hбСимвол таблицы CP866 реализации Axiom.
162A2hвСимвол таблицы CP866 реализации Axiom.
163A3hгСимвол таблицы CP866 реализации Axiom.
164A4hдСимвол таблицы CP866 реализации Axiom.
165A5hеСимвол таблицы CP866 реализации Axiom.
166A6hжСимвол таблицы CP866 реализации Axiom.
167A7hзСимвол таблицы CP866 реализации Axiom.
168A8hиСимвол таблицы CP866 реализации Axiom.
169A9hйСимвол таблицы CP866 реализации Axiom.
170AAhкСимвол таблицы CP866 реализации Axiom.
171ABhлСимвол таблицы CP866 реализации Axiom.
172AChмСимвол таблицы CP866 реализации Axiom.
173ADhнСимвол таблицы CP866 реализации Axiom.
174AEhоСимвол таблицы CP866 реализации Axiom.
175AFhпСимвол таблицы CP866 реализации Axiom.
176B0h░Символ таблицы CP866 реализации Axiom.
177B1h▒Символ таблицы CP866 реализации Axiom.
178B2h▓Символ таблицы CP866 реализации Axiom.
179B3h│Символ таблицы CP866 реализации Axiom.
180B4h┤Символ таблицы CP866 реализации Axiom.
181B5h╡Символ таблицы CP866 реализации Axiom.
182B6h╢Символ таблицы CP866 реализации Axiom.
183B7h╖Символ таблицы CP866 реализации Axiom.
184B8h╕Символ таблицы CP866 реализации Axiom.
185B9h╣Символ таблицы CP866 реализации Axiom.
186BAh║Символ таблицы CP866 реализации Axiom.
187BBh╗Символ таблицы CP866 реализации Axiom.
188BCh╝Символ таблицы CP866 реализации Axiom.
189BDh╜Символ таблицы CP866 реализации Axiom.
190BEh╛Символ таблицы CP866 реализации Axiom.
191BFh┐Символ таблицы CP866 реализации Axiom.
192C0h└Символ таблицы CP866 реализации Axiom.
193C1h┴Символ таблицы CP866 реализации Axiom.
194C2h┬Символ таблицы CP866 реализации Axiom.
195C3h├Символ таблицы CP866 реализации Axiom.
196C4h─Символ таблицы CP866 реализации Axiom.
197C5h┼Символ таблицы CP866 реализации Axiom.
198C6h╞Символ таблицы CP866 реализации Axiom.
199C7h╟Символ таблицы CP866 реализации Axiom.
200C8h╚Символ таблицы CP866 реализации Axiom.
201C9h╔Символ таблицы CP866 реализации Axiom.
202CAh╩Символ таблицы CP866 реализации Axiom.
203CBh╦Символ таблицы CP866 реализации Axiom.
204CCh╠Символ таблицы CP866 реализации Axiom.
205CDh═Символ таблицы CP866 реализации Axiom.
206CEh╬Символ таблицы CP866 реализации Axiom.
207CFh╧Символ таблицы CP866 реализации Axiom.
208D0h╨Символ таблицы CP866 реализации Axiom.
209D1h╤Символ таблицы CP866 реализации Axiom.
210D2h╥Символ таблицы CP866 реализации Axiom.
211D3h╙Символ таблицы CP866 реализации Axiom.
212D4h╘Символ таблицы CP866 реализации Axiom.
213D5h╒Символ таблицы CP866 реализации Axiom.
214D6h╓Символ таблицы CP866 реализации Axiom.
215D7h╫Символ таблицы CP866 реализации Axiom.
216D8h╪Символ таблицы CP866 реализации Axiom.
217D9h┘Символ таблицы CP866 реализации Axiom.
218DAh┌Символ таблицы CP866 реализации Axiom.
219DBh█Символ таблицы CP866 реализации Axiom.
220DCh▄Символ таблицы CP866 реализации Axiom.
221DDh▌Символ таблицы CP866 реализации Axiom.
222DEh▐Символ таблицы CP866 реализации Axiom.
223DFh▀Символ таблицы CP866 реализации Axiom.
224E0hрСимвол таблицы CP866 реализации Axiom.
225E1hсСимвол таблицы CP866 реализации Axiom.
226E2hтСимвол таблицы CP866 реализации Axiom.
227E3hуСимвол таблицы CP866 реализации Axiom.
228E4hфСимвол таблицы CP866 реализации Axiom.
229E5hхСимвол таблицы CP866 реализации Axiom.
230E6hцСимвол таблицы CP866 реализации Axiom.
231E7hчСимвол таблицы CP866 реализации Axiom.
232E8hшСимвол таблицы CP866 реализации Axiom.
233E9hщСимвол таблицы CP866 реализации Axiom.
234EAhъСимвол таблицы CP866 реализации Axiom.
235EBhыСимвол таблицы CP866 реализации Axiom.
236EChьСимвол таблицы CP866 реализации Axiom.
237EDhэСимвол таблицы CP866 реализации Axiom.
238EEhюСимвол таблицы CP866 реализации Axiom.
239EFhяСимвол таблицы CP866 реализации Axiom.
240F0hЁСимвол таблицы CP866 реализации Axiom.
241F1hёСимвол таблицы CP866 реализации Axiom.
242F2hЄСимвол таблицы CP866 реализации Axiom.
243F3hєСимвол таблицы CP866 реализации Axiom.
244F4hЇСимвол таблицы CP866 реализации Axiom.
245F5hїСимвол таблицы CP866 реализации Axiom.
246F6hЎСимвол таблицы CP866 реализации Axiom.
247F7hўСимвол таблицы CP866 реализации Axiom.
248F8h°Символ таблицы CP866 реализации Axiom.
249F9h∙Символ таблицы CP866 реализации Axiom.
250FAh·Символ таблицы CP866 реализации Axiom.
251FBh√Символ таблицы CP866 реализации Axiom.
252FCh№Символ таблицы CP866 реализации Axiom.
253FDh¤Символ таблицы CP866 реализации Axiom.
254FEh■Символ таблицы CP866 реализации Axiom.
255FFhНеразрывный пробелСимвол таблицы CP866 реализации Axiom.

См. также

Полный синтаксис ASC, ASCW, CHR и CHRW