Форум программистов, компьютерный форум, киберфорум
Lua
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
 Аватар для Archie_
0 / 0 / 0
Регистрация: 28.04.2018
Сообщений: 50

Использование юникода в коде:

26.07.2020, 10:27. Показов 1690. Ответов 7
Метки lua (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Подскажите знающие люди, можно ли использовать юникод (или как это правильнее назвать) в коде?
Например:
мне нужно сохранить что то в ini файл, но ключ содержит знак равно (что недопустимо для ини файлов.
И я делаю следующее при сохранении, в ключе заменяю знак равно на похожий символ найденный в интернете.
Code
1
2
    key = 'KEY=OBG';
    key = key:gsub('=','═')
затем при восстановлении я также по этому символу восстанавливаю равно в ключе.
Да я знаю что этот знак отображается не везде корректно и где то в виде кракозябры, а где то в виде квадратика и из за этого и возник вопрос.
Вопрос:
Если я сохраню .ини файл на одной машине, а восстанавливать буду на других машинах, то будет ли этот код корректен, не поломает ли этот(эти) символ(ы) код ?
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.07.2020, 10:27
Ответы с готовыми решениями:

Использование юникода в проекте?
В середине 2000-ых во время изучения любых новых языков практически всегда возникала проблема с корректной обработкой в коде всех этих...

Как ввести полную поддержку юникода в коде, чтобы не писать префикс
Как ввести полную поддержку юникода в коде Чтобы не писать постоянно префикс

Использование JAVA в С коде
Требуется именно такая связка, в проект на С прикрутить код некоторых методов на JAVA с наименьшей головной болью. Кто сталкивался уже,...

7
Модератор
 Аватар для Curry
5154 / 3474 / 536
Регистрация: 01.06.2013
Сообщений: 7,533
Записей в блоге: 9
26.07.2020, 11:17
Стандарта описывающего ini-формат не существует. Так что лучше введите какую ни будь "кракозябру" из допустимых символов которой заменяйте =, а потом по ней заменяйте обратно.
Например, перед записью заменяйте
= на EQ0
EQ на EQ1

Добавлено через 4 минуты
Ключ ab=cdEQef заменится на abEQ0cdEQ1ef
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
26.07.2020, 11:45
Цитата Сообщение от Curry Посмотреть сообщение
Стандарта описывающего ini-формат не существует
кстати, использовать для хранимых переменных сериализованную луа-шную таблицу весьма удобно.

чем многие разработчики и пользуются.

Добавлено через 36 секунд
ps: я - тоже.

Добавлено через 18 минут
вообще, данная проблема была решена еще во времена языка Си:

при записи исходный "=" заменяется на "\=", "\" заменяется на "\\"
при чтении наоборот - подряд идущие "\=" меняются на "=", "\\" заменяется на "\"

называется это "эскейп-последовательности"...
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
28.07.2020, 08:52
Цитата Сообщение от Archie_ Посмотреть сообщение
что недопустимо для ини файлов
Я как-то пропустил мимо ушей эту фразу... Почему же это - недопустимо? Какую библиотеку вы используете?
0
 Аватар для Archie_
0 / 0 / 0
Регистрация: 28.04.2018
Сообщений: 50
28.07.2020, 13:04  [ТС]
Цитата Сообщение от vantfiles Посмотреть сообщение
Я как-то пропустил мимо ушей эту фразу... Почему же это - недопустимо? Какую библиотеку вы используете?
Не так выразился. Не недопустимо, а не удобно.
Не - библиотеку не какую не использую, собственные функции, просто под каждый случай писать свою собственную функцию не удобно, и используется одна на все случаи и обрабатывается вот так

Code
1
2
3
--ini--
[section]
key=bla bla bla bla
Code
1
2
3
--lua--
 
key,val = str:match('^(.-)=(.*)')
Потому и написал что не допустимо.
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
29.07.2020, 17:11
Я все-таки уточню - ваш ini-файл предназначен для чтения только из Lua-скриптов -- или вы его, скажем из плюсов парсите тоже?
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
30.07.2020, 18:09
Ну... скажем... можно делать так:

Файл config.lua

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
return
{
   files = {
     data1 = "../data/data1.txt",
     data2 = "../data/data2.txt",
   },
   pi = 3.1415,
   keys = {
     key1 = "Same text = Некий текст",
     key2 = 12345,
     key3 = "Фраза \"Вы выходите?\" в транспорте означает 'дайте, пожалуйста, пройти'"
   },
}
Пример чтения конфига:

Lua
1
2
3
4
5
6
7
8
cfg = dofile( "config.lua" ) -- читаем конфиг в глобальную cfg
 
print( cfg.files.data1 )
print( cfg.files.data2 )
print( cfg.pi )
print( cfg.keys.key1 )
print( cfg.keys.key2 )
print( cfg.keys.key3 )
Сохранять таблицу/конфиг можно и нужно через сериализацию, примеры можно найти здесь:

http://lua-users.org/wiki/TableSerialization
1
 Аватар для Archie_
0 / 0 / 0
Регистрация: 28.04.2018
Сообщений: 50
31.07.2020, 18:26  [ТС]
Цитата Сообщение от vantfiles Посмотреть сообщение
Я все-таки уточню - ваш ini-файл предназначен для чтения только из Lua-скриптов -- или вы его, скажем из плюсов парсите тоже?
Только из Lua
Цитата Сообщение от vantfiles Посмотреть сообщение
Ну... скажем... можно делать так:
Спасибо , это интересно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.07.2020, 18:26
Помогаю со студенческими работами здесь

Использование js в коде виджета
Добрый день, уважаемые форумчане. Подскажите, есть ли возможность использования javascript в коде виджета? Суть проблемы: Есть...

Использование foreach() в коде
<?php $pfad = array('istoria', 'artikel', 'foto', 'kniga'); $NAME = array('история', 'статьи', 'фото', 'книги'); foreach ($pfad as...

Использование кириллицы в коде C#
Собственно вопрос для всех. Когда-то давным-давно когда Делфи был круче VS, а я был мал и глуп, кириллица в коде и в объявлениях переменных...

Использование DynamicResource в c# коде
Добрый день. Использую DynamicResource для локализации приложения. В wpf все достаточно просто, пишем что-то вроде <Button...

Использование переменных в коде
Всем привет, Вопрос по Python 2.7 Есть код r = requests.get(‘https://api.github.com/user’, auth=(‘user’, ‘pass’)) Есть 3...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru