любом случае, не вижу там МНЕНИЯ Свена, а просто отсылка в к документаци "вот сейчас оно так"
дока, кстати, кривая... source file codepage <> CP_ACP насколько const CP_ACP = 0; или может быть +1, но ничего похожего на 1251 или 65001. Потому никакого реального смысла во втором пункте не вижу.
далее, сам твой багрепорт какой-то кривой, ты пишешь {$Codepage UTF8} и ты же пишешь, что expected/correct: sAS=test2-тест1 cp=1251
это как??? откуда там 1251 если ты UTF8 пытаешься гвоздиком прибить?
мне кажется, ты сейчас в свой репорт втащил всю веселуху из https://gitlab.com/freepascal.org/fpc/source/-/issues/40196 и даже не заметил
насколько я понял ссылку Свена, то у тебя случился случай "if (SOURCE_CP = DEST_CP), no codepage conversion will be performed."
ну и в самом деле, с хрена ли конвертировать ,когда конвертировать не надо?
и да, поскольку ты прибил гвоздиком {$Codepage UTF8} - правильно я этот каргокульт с первого взгляда невзлюбил, я ещё помню 1990-е когда кодировку HTML-страничек внутри тэгом указывали и как это потом всё корежило при автоматических перекодировках - то ты приказал компилятору считать utf8string и ansistring одним и тем же типом, что он и делает. Если это один и тот же тип, зачем конвертировать-то?
...ну а дальше понеслась душа в рай, потому что реальные данные в EXE не соответвуют декларации, как я и писал в том старом тикете.
не кривой. {$Codepage UTF8} - это только указание кодировки исходника и не влияет на кодировку строк в бинарнике, только помогает их правильно перекодировать в нужную (по мнению компилятора) кодировку
всё равно не понимаю чем в твоём случае является тип string (а он а FPC иогу и UTF-16 быть и UTF-8) и чему равен DefaultSystemCodePage (на win10 может быть и в UTF8 если в Лазаре одну галку ткнуть) s=test2-тест1 cp=1251 - Откуда тут 1251 должен взяться, если у тебя в бинарнике константа якобы в UTF-8 (проверял, кстати?) ? может быть тебе в самом деле просто поставить в лазаре галку, что у тебя ACP = UTF8 и больше не мыкаться? считать что нет больше никаких других кодировок кроме двух юникодов, все остальное атавизм
разве? {$Codepage UTF8} просто говорит компиялтору в какой кодировке этот исходный файл и все
это теория, если бы все шло по теории то и багов бы не было
ну если это влияет на другие аспекты то это тоже баг. в целом я протсо сдался и жду юникода.
чего ждешь? где?
https://wiki.lazarus.freepascal.org/FPC_Unicode_RTL
Обсуждают сегодня