Разный UNICODE в Delphi и Lazarus?!

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

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

Разный UNICODE в Delphi и Lazarus?!

Сообщение MaratIsk » 28.02.2015 06:47:53

Почему-то Delphi и Lazrus формируют несовместимые стримы при одинаковом коде
У вас нет необходимых прав для просмотра вложений в этом сообщении.
MaratIsk
постоялец
 
Сообщения: 121
Зарегистрирован: 20.08.2009 18:15:20

Re: Разный UNICODE в Delphi и Lazarus?!

Сообщение SSerge » 28.02.2015 09:46:51

почему-то...

Причем здесь юникод и где он? В дельфи в частности.
Вы определяете shortString (string[250]) в записи вашего поля, вы ожидаете что в этой строке будет в дельфах уникод? Байтовая кодировка cp1251 там будет*, из-за скрытого преобразования кодовых страниц. В лазарусе в такой же переменной получится UTF-8, если механизм преобразования кодовых страниц неактивен (fpc 2.6.x)

Теорию то почитайте, не зря переводилось:

http://wiki.freepascal.org/LCL_Unicode_Support/ru
http://wiki.freepascal.org/FPC_Unicode_support/ru

и ту же тематику про delphi

*хотя, могу допустить, что в версиях дельфа, у которых String=UnicodeString и AnsiString=UnicodeString, а также char=UnicodeChar в вашей строке действительно будет 250 двубайтных знаков UTF-16 - но и тем более в этом случае не стоит ждать совместимости.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Разный UNICODE в Delphi и Lazarus?!

Сообщение MaratIsk » 28.02.2015 09:55:01

извиняюсь - не уточнил - Delphi 2010
MaratIsk
постоялец
 
Сообщения: 121
Зарегистрирован: 20.08.2009 18:15:20

Re: Разный UNICODE в Delphi и Lazarus?!

Сообщение Снег Север » 28.02.2015 11:29:10

MaratIsk писал(а):извиняюсь - не уточнил - Delphi 2010
В Delphi 2010 символы UTF-16, в лазаре - UTF-8. Так что всё верно, несовместимость. Для совместимости нужна перекодировка.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: Разный UNICODE в Delphi и Lazarus?!

Сообщение CynicRus » 02.03.2015 02:20:49

Плюс если передавать из Delphi в Лазарь передавать и наоборот, следует учитывать, что менеджеры памяти различаются, и следует передавать PChar, а не строки. Хотя с AnsiString прокатывало и так. Не знаю почему.
CynicRus
постоялец
 
Сообщения: 106
Зарегистрирован: 28.06.2012 14:31:11


Вернуться в Lazarus

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

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

Рейтинг@Mail.ru
cron