2.bat https://vk.com/s/v1/doc/g_r1at3YMC8bBmKL7LcVQm_ohsGcnIxWLVneTh-yKwpqQ5K-Gis @echo off & setlocal enableDelayedExpansion
@chcp 1251>nul
mode con:cols=120 lines=34
color 0B
ECHO для подготовки к отправки SMS, в формате символов Unicode & ECHO.
ECHO "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ GHIJKLMNOPQRSTUVWXYZ№#&'()+,-_./:;<>?[]{}@"
REM выводим имя bat файла
set "NIME_BAT=%~n0"
ECHO. & ECHO !NIME_BAT! & ECHO.
:START_CONVERTER
set "INstr="
ECHO Введите или вставте текст и нажмите клавишу Enter
set /P "INstr=Enter something:"
ECHO.
REM если пустая строккаа
if "!INstr!"=="" (ECHO пустая строккаа & ECHO. & goto :START_CONVERTER)
REM сохраняем в текстовый файл принятую строку
ECHO !INstr!>>"!NIME_BAT!.txt"
REM массив строка с кодами символов в виде Unicode UTF-8 HEX
set "RU_UTF_8_UP=0410 0411 0412 0413 0414 0415 0401 0416 0417 0418 0419 041A 041B 041C 041D 041E 041F 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042A 042B 042C 042D 042E 042F 0020 0047 0048 0049 004A 004B 004C 004D 004E 004F 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 2116 0023 0026 0027 0028 0029 002B 002C 002D 005F 002E 002F 003A 003B 003C 003E 003F 001B003C 001B003E 001B0028 001B0029 001B0040"
REM массив строка символов ASCII (допустимый диапазон символов, для конвертации в Unicode)
set "RUstr=АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ GHIJKLMNOPQRSTUVWXYZ№#&'()+,-_./:;<>?[]{}@"
REM во входящей строке, все (ASCII - цифры) оборачиваем символами "`".
REM чтобы при замене в строке (ASCII - цифр) на (Unicode - символы),
REM не заменить цифры от (Unicode - символа цифр) UTF-8 HEX.
for /L %%i in (0,1,9) do (set "INstr=!INstr:%%i=`%%i`!")
REM во входящей строке, буквы (A B C D E F) оборачиваем символами "`".
REM чтобы при замене в строке (ASCII - символы) на (Unicode - символы),
REM не заменить буквы "ABCDEF" - HEX от (Unicode - букв символов) UTF-8 HEX.
for %%n in (A B C D E F) do (set "INstr=!INstr:%%n=`%%n`!")
REM перебираем элементы сразу двух массивов - (RUstr и RU_UTF_8_UP)
REM заменяем в строке INstr найденные (ASCII - символы) из строки RUstr
REM на (Unicode - символы) из строки RU_UTF_8_UP
set/a NUM_letter=0
for %%T in (%RU_UTF_8_UP%) do (
call set "RUletter=%%RUstr:~!NUM_letter!,1%%"
call set "INstr=%%INstr:!RUletter!=%%T%%"
set/a NUM_letter+=1
)
REM замена в строке (ASCII - цифр) обёрнутые символами "`", на (Unicode - символы цифр)
for /L %%i in (0,1,9) do (set "INstr=!INstr:`%%i`=003%%i!")
REM замена в строке буквы (A B C D E F) обёрнутые символами "`", на (Unicode - символы букв - ABCDEF)
set/a NUM_n=0
for %%n in (A B C D E F) do (
set/a NUM_n+=1
call set "INstr=%%INstr:`%%n`=004!NUM_n!%%"
)
ECHO !INstr! & ECHO.
REM сохраняем в текстовый файл строку Unicode UTF-8 HEX
ECHO !INstr!>>"!NIME_BAT!.txt"
ECHO. >>"!NIME_BAT!.txt"
"!NIME_BAT!.txt"
REM передаём значение другому BAT файлу, и возвращаемся обратно
set "OTHER_NIME_BAT_FILE=SMS_UNICODE__79164144255#$!INstr!"
start /wait SEND_COM_PORT.bat
REM call SEND_COM_PORT.bat %OTHER_NIME_BAT_FILE%
REM снова готовы принять строку
goto :START_CONVERTER
pause
EXIT
REM ##########################################
REM ##########################################
REM ##########################################
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
0410 0411 0412 0413 0414 0415 0401 0416 0417 0418 0419 041A 041B 041C 041D 041E 041F 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042A 042B 042C 042D 042E 042F
абвгдеёжзийклмнопрстуфхцчшщъыьэюя
а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
0430 0431 0432 0433 0434 0435 0451 0436 0437 0438 0439 043A 043B 043C 043D 043E 043F 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044A 044B 044C 044D 044E 044F
ABCDEFGHIJKLMNOPQRSTUVWXYZ
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A
abcdefghijklmnopqrstuvwxyz
a b c d e f g h i j k l m n o p q r s t u v w x y z
0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A
0123456789
0 1 2 3 4 5 6 7 8 9
0030 0031 0032 0033 0034 0035 0036 0037 0038 0039
№!"#$&'()*+,-./:;<=>?@[]^_`{|}~
№ ! # $ & ' ( ) * + , - . / : ; < = > ? @ [ ] ^ _ ` { | } ~
№ # & ' ( ) + , - _ . / : ; < > ? [ ] { } @
№#&'()+,-_./:;<>?[]{}@
2116 0023 0026 0027 0028 0029 002B 002C 002D 005F 002E 002F 003A 003B 003C 003E 003F 001B003C 001B003E 001B0028 001B0029 001B0040
set "RU_UTF_8_LOW=0430 0431 0432 0433 0434 0435 0451 0436 0437 0438 0439 043A 043B 043C 043D 043E 043F 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044A 044B 044C 044D 044E 044F 0020"
0020 ПРОБЕЛ
REM set "INstr=!INstr: =0020!"
REM ##########################################
Кодировка символов
Unicode — это таблица, которая назначает уникальные номера различным символам
Unicode UTF-8 ("кодовая точка" == "4-байтный блок в HEX виде '00D7' ")
Расширенный графемный кластер «графемы» — это последовательность,
состоящая из одной или нескольких "кодовых точек" Unicode,
которую нужно рассматривать как самостоятельный, неделимый символ.
в Unicode некоторые графемы, кодируются с использованием нескольких кодовых точек.
строка — это последовательность графемных кластеров.
REM ##########################################
SMS UCS-2 символы Message Messaging Segment Calculator https://twiliodeved.github.io/message-segment-calculator/
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев