powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
10 сообщений из 60, страница 3 из 3
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
    #39776048
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокВолшебной функции нету, но есть модуль LConvEncoding с волшебной функцией GuessEncoding :)
А ты посмотри ее код xD какая там магия, тупо проверка БОМ-ов, прогон по <#128, преобразование utf8, а в финале - ТА-ДАММ - Result:=GetDefaultTextEncoding; // use system encoding
...
Рейтинг: 0 / 0
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
    #39776051
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2финале - ТА-ДАММ - Result:=GetDefaultTextEncoding; // use system encoding
"Так тебе шашечки или ехать?" ©

Ты об чем споришь сейчас? Или приведенный мною способ проблемы ТС не решает?
...
Рейтинг: 0 / 0
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
    #39776058
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблему ТС решает LoadFromFile('...', TEncoding.UTF8), ну или чуть более универсально - try u8s := Utf8String(Buffer) except {это явно не UTF8} end (лень проверять, выкинет ли неявный каст эксепшен, идея, надеюсь, понятна).
...
Рейтинг: 0 / 0
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
    #39776083
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2Проблему ТС решает LoadFromFile('...', TEncoding.UTF8)
Возможно. Кодировки для меня - явление новое, с учётом специфики лазаря ещё могут быть ещё и отличия от дельфей. Будет время, поэкспериментирую для личного опыта.
...
Рейтинг: 0 / 0
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
    #39776222
bastibubu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Док Волшебной функции нету, но есть модуль LConvEncoding с волшебной функцией GuessEncoding :)


Док, есть ещё GetBufferEncoding:This example determines the encoding of a source file and then writes the file in any encoding chosen. http://docwiki.embarcadero.com/CodeExamples/Tokyo/en/TEncoding_(Delphi)

Василий 2Проблему ТС решает LoadFromFile('...', TEncoding.UTF8), ну или чуть более универсально - try u8s := Utf8String(Buffer) except {это явно не UTF8} end
Василий 2, пробовал и такую перегруженную процедуру LoadFromFile('...', TEncoding.UTF8), но это недостаточно, с этим или без него результат один, а Utf8String(Buffer) пока не использовал.
Главное что причину прояснил и сейчас файл сохраняю как BOM (utf8, unicode, unicode big endian) и проблема снята- китайские иероглифы исчезли и в бинарном блобе текст правильно сохраняется из rtf-файла/memo/richedit и загружается обратно. На этом этапе мне и это достаточно.

Если кому-то интересно очень помогли эти статьи:
http://docwiki.embarcadero.com/RADStudio/Berlin/en/Unicode_in_RAD_Studio#Summary_of_What_Has_Not_Changed
http://docwiki.embarcadero.com/RADStudio/Berlin/en/UTF-8_Conversion_Routines
...
Рейтинг: 0 / 0
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
    #39776245
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2
Код: sql
1.
Это как раз не трудно


- корректный UTF-8. И что с ним дальше делать?
Можно определить некоторые случаи, когда текст НЕ в UTF-8. Но это лишь подмножество из возможного количества вариантов

что делать? обрабатывать.

Да, это лишь подмножества.
Корректные тексты вообще - лишь подмножества из всех возможных сочетаний байтов.

Да, кстати, если ещё не сталкивались.
У великолепнейшего класса TEncoding есть ещё одна фишка - он НЕ возвращает ошибок.
Т.е. при скармливании тому же TEncoding.UTF8 некорректного текста - он вернёт не ошибку, а пустую строку.

Особенно это было весело, когда нужно было древний проект (Delphi 5, данные хранились в БД в виде DFM, названия этих потомков TComponent были в windows-1251 (формально так нельзя, но никто не проверял и не запрещал)) перевести на новые юникодные Delphi (где это формально можно, но в UTF-8).

Пришлось создавать собственный "двойной" TEncoding и патчить в памяти то ли TComponent, то ли TReader, то ли оба
...
Рейтинг: 0 / 0
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
    #39776247
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Докесть модуль LConvEncoding с волшебной функцией GuessEncoding

есть с древнейших времён TCode от Alex Boiko

но она работает только с русским языком и совсем не работает с остальными

опять, блин, только лишь подмножество.....
...
Рейтинг: 0 / 0
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
    #39776280
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

т.е., например, в Берлин Хеми она не сработает, если р и X латинские?
...
Рейтинг: 0 / 0
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
    #39776297
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gator,

там всё остальное русское :-)

попробуй.

вообще, статистика накапливается на больших массивах слов, два слова это всё равно голодный паёк для статистики
...
Рейтинг: 0 / 0
Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
    #39776414
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

Тут не слова, а тупо фиксированный справочник фирм, и туева хуча тупых баб, которые руками отправляли названия ручками. Сохласен, пример неудачен. Чаще попадались лати латинские названия с кир.буквами.
________________
Мне насрать, давно, У меня русский редко попадает, чего не скажешь о датчах
...
Рейтинг: 0 / 0
10 сообщений из 60, страница 3 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Кракозябры и иероглифы при чтении и записи из текстового файла или Memo в blob и обратно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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