Перешёл с 0.9.30на 1.4 - проект не работает. Опять юникод???

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Перешёл с 0.9.30на 1.4 - проект не работает. Опять юнико

Сообщение slyubez » 03.08.2015 19:04:51

Потому, что в Delphi одна кодировка - виндовская

Нет такой кодировки. Есть ANSI, и есть UTF-16. Все системные вызовы внутри VCL и RTL идут в какой-то одной из этих кодировок, в зависимости от версии Delphi. Есть возможность также применять API-функции с другой кодировкой, указывая их явно.
Системные вызовы будут unicode, внутренняя кухня (RLT) тоже.

Для кроссплатформенного программирования не факт, что будет хорошо, учитывая, что Windows работает с UTF-16, а Linux - с UTF-8.
slyubez
постоялец
 
Сообщения: 180
Зарегистрирован: 31.03.2015 08:44:07

Re: Перешёл с 0.9.30на 1.4 - проект не работает. Опять юнико

Сообщение postscripter » 03.08.2015 19:12:32

А, ну тады правда только 3.0 поможет.
postscripter
новенький
 
Сообщения: 24
Зарегистрирован: 31.05.2012 20:22:01

Re: Перешёл с 0.9.30на 1.4 - проект не работает. Опять юнико

Сообщение resident » 03.08.2015 19:24:48

qivi писал(а):на сколько я понял FPC начиная с долгожданного 3.0 будет Unicode (UTF-16), то биш нужно будет балансировать между 3 кодировками )))

Варианта два: Или это самоубийство или Лазарус заказали :)

Статейка про заигрывание с мало кому нужными фишками непонятно ради чего. Хуть сюда перепечатывай.
http://habrahabr.ru/post/147281/
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Перешёл с 0.9.30на 1.4 - проект не работает. Опять юнико

Сообщение Лекс Айрин » 03.08.2015 20:32:13

slyubez писал(а):Это в Линуксе-то?


Не попадалось... обычно, под виндой такие проблемы.

Добавлено спустя 3 минуты 26 секунд:
Re: Перешёл с 0.9.30на 1.4 - проект не работает. Опять юникод???
Видимо, это из-за слоя совместимости с виндовс.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Перешёл с 0.9.30на 1.4 - проект не работает. Опять юнико

Сообщение slyubez » 03.08.2015 22:45:46

Не попадалось... обычно, под виндой такие проблемы.

В винде нет UTF8-функций.
slyubez
постоялец
 
Сообщения: 180
Зарегистрирован: 31.03.2015 08:44:07

Re: Перешёл с 0.9.30на 1.4 - проект не работает. Опять юнико

Сообщение Лекс Айрин » 04.08.2015 09:34:59

slyubez,

https://www.mql5.com/ru/articles/1543 писал(а):Здесь мы видим уже знакомую библиотеку kernel32.dll. Правда, имя функции записано не FindFirstFile(), а как FindFirstFileA(). Это объясняется тем, что многие функции в этой библиотеки имеют два варианта: для работы со строками в кодировке Unicode к имени функции добавляется буква "W" (FindFirstFileW), а для работы с кодировкой ANSI добавляется буква "A" (FindFirstFileA).


Добавлено спустя 2 минуты 33 секунды:
Re: Перешёл с 0.9.30на 1.4 - проект не работает. Опять юникод???
Хотя может речь идти и об UTF16...
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Перешёл с 0.9.30на 1.4 - проект не работает. Опять юнико

Сообщение slyubez » 04.08.2015 20:04:29

Хотя может речь идти и об UTF16...

О ней самой и идёт. В UTF16 любой символ всегда имеет размер не менее двух байт (WideString), а в UTF8 первые 128 символов - однобайтовые, совпадающие с ANSI.
slyubez
постоялец
 
Сообщения: 180
Зарегистрирован: 31.03.2015 08:44:07

Пред.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 215

Рейтинг@Mail.ru