powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / си строки в delphi
14 сообщений из 39, страница 2 из 2
си строки в delphi
    #39790445
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxpc,

Не знаю. Я вообще написал сначала про понятия юникод и UTF-8, потому что показалось, что ты как-то их используешь не в общепринятом смысле. А вникать в детали задачи неохота, суббота впридачу. :)
...
Рейтинг: 0 / 0
си строки в delphi
    #39790447
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxpcs62,

А чем Utf8ToUnicodeString отличается от TEncoding.UTF8.GetString ?
Используй второй вариант.
...
Рейтинг: 0 / 0
си строки в delphi
    #39790461
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxpc Так что смысла особого вообще нет в TEncoding

Смысл в том, что это универсальный централизованный способ перекодирования.
...
Рейтинг: 0 / 0
си строки в delphi
    #39790500
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asviridenkov,

Бред. Они одинаковые. Одна и та же функция вызывается - MultiByteToWideChar

Никакой универсальности нету, кроме того что сам класс поддерживает разный сборник кодировок.
...
Рейтинг: 0 / 0
си строки в delphi
    #39790505
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxpc,
особенно интересно будет MultiByteToWideChar увидеть не на windows.
...
Рейтинг: 0 / 0
си строки в delphi
    #39790509
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaon,

штука и не пишется не для винды
...
Рейтинг: 0 / 0
си строки в delphi
    #39790552
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxpcштука и не пишется не для винды"Такое впечатление, что вы бредите" (с) Вроде русским языком всё объяснили...
...
Рейтинг: 0 / 0
си строки в delphi
    #39790625
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_nigger,

Да в прочем опять же бреееееед. Даже если я захочу скомпилировать под другую систему Линкус или андройда.

Компилятор сразу подхватит другую реализацию этой же функции. Так что какать хотел на это, и на вашу псевдо универсальность (Которой нет)
...
Рейтинг: 0 / 0
си строки в delphi
    #39791407
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxpcTEncoding.UTF8.GetString

TEncoding - это та ещё весёлая зараза. Я понимаю желания копипастить C# ен включая мозга, но не в RTL же!

кстати, попробуй ей скормить испорченную UTF-8 строку

например вырежи из неё один байт наугад.

или проще всего

Код: pascal
1.
2.
3.
4.
5.
6.
var u8s : AnsiString = 'start is correct UTF-8 bytestream for a while но потом внезапно a small non-Unicode piece';
     u16s: string;
     b: TByteStresm;

b.WriteBuffer(s[1], Length(s)+1);
u16s := TEncoding.UTF8.GetString(b.Bytes); 



угадай, что будет в u16s (и вообще, дойдёт ли программа до этой строчки)

потом сравни с другими вариантами конвертирования этой намеренно подпорченной строки, начиная с MultiByteToWideChar, древним UTF8Decode и т.д.
...
Рейтинг: 0 / 0
си строки в delphi
    #39791501
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arioch,


у меня были проблемы, что отладчик видит значения. А вывести в консоль не может. И условие str = nil давала true

Я так и не понял причину, просто переписал код как было
...
Рейтинг: 0 / 0
си строки в delphi
    #39791507
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochкстати, попробуй ей скормить испорченную UTF-8 строку

например вырежи из неё один байт наугад.

потом сравни с другими вариантами конвертирования этой намеренно подпорченной строки, начиная с MultiByteToWideChar, древним UTF8Decode и т.д.

То что что-то неявно решало проблемы, и вдруг перестало решать - не означает что работало верно.
Если скормили кривую строку - то и должны получить кривой результат.
Передай нормальную строку - получишь нормальный результат.
Все логично.
...
Рейтинг: 0 / 0
си строки в delphi
    #39791522
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X-Cite,

UTF8String(PAnsiChar(PUTF8String)) даже бинарные строки, и обычные жуёт верно
...
Рейтинг: 0 / 0
си строки в delphi
    #39791525
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прекрасная логика.

По ней код
Код: pascal
1.
x := 1; y := 0; z := x / y; 

может выдавать всё, что хочется. Например random. Или 42.

Кажется то ли в PHP то ли в MySQL 3 такой код выдавал 0 как результат.

Ну а чего, все же логично, скормили кривые числа - получили кривой результат, всё как надо.
...
Рейтинг: 0 / 0
си строки в delphi
    #39791535
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arioch,

не, php выдаст INF точно говорю. + предупреждения
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / си строки в delphi
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]