powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / можно ли переменной типа TStringList задать кодировку
10 сообщений из 10, страница 1 из 1
можно ли переменной типа TStringList задать кодировку
    #39905471
yemets63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в пересенной типа TStringList текст лежит правильно, сохраняю в большой String, теряю буувы, а точнее диакритические знаки

TStringList сохраняю в файл , просто SaveAs без указаний кодировок

потом загружаю из файла с указанием кодировки, допустим OEM OS Windows = GetOEMCP
сохраняю в большой String все знаки на месте.

как исключить работу с файлом, напрямую передать из TStringList в String чтобы кодировка осталась, или как конкретно указать String какая кодировка придет
...
Рейтинг: 0 / 0
можно ли переменной типа TStringList задать кодировку
    #39905480
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия Delph какая?

yemets63
как исключить работу с файлом, напрямую передать из TStringList в String чтобы кодировка осталась

Для Unicode дельфей:
Код: pascal
1.
StringValue := SomeStringList.Text;


yemets63
TStringList сохраняю в файл , просто SaveAs без указаний кодировок

2009 и старше по-умолчанию сохраняют в UTF-16LE (насчёт LE не уверен на 100%).
...
Рейтинг: 0 / 0
можно ли переменной типа TStringList задать кодировку
    #39905499
yemets63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

24-я Берлин

читаю из Windows OEM одировку, положить надо в базу, если через файл, всё прекрасно, пробовал напрямую, потеря букв
...
Рейтинг: 0 / 0
можно ли переменной типа TStringList задать кодировку
    #39905598
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63,

может вот так будет норм? (не уверен, но проверять или углубляться сейчас некогда)

Код: pascal
1.
2.
3.
4.
5.
6.
type 
  TCyrDosString = type AnsiString(866);

var s1: TCyrDosString;

s1 := StringList.Text;
...
Рейтинг: 0 / 0
можно ли переменной типа TStringList задать кодировку
    #39905607
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62

может вот так будет норм? (не уверен, но проверять или углубляться сейчас некогда)

Код: pascal
1.
2.
3.
4.
5.
6.
type 
  TCyrDosString = type AnsiString(866);

var s1: TCyrDosString;

s1 := StringList.Text;



1. Только если у ТС "диакритические знаки", то страница не 866, скорее всего.
2. s1 := TCyrDosString(StringList.Text); - чтобы не ругался.
...
Рейтинг: 0 / 0
можно ли переменной типа TStringList задать кодировку
    #39905608
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63
alekcvp,
читаю из Windows OEM одировку, положить надо в базу, если через файл, всё прекрасно, пробовал напрямую, потеря букв

А можно увидеть пару кусков кода, "вот так норм" и "вот так не норм"?..
...
Рейтинг: 0 / 0
можно ли переменной типа TStringList задать кодировку
    #39905623
yemets63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

кодировку закрыл, пока оставил через файл,
сохраняю что считал из Windows , потом читаю код страницы OEM из Windows и считываю сохраненный файл loadfromfile(filename, код OEM) и сохраняю в базу

попробую в понедельник, отпишусь в любом случае, так как хочу избавится от файлов и кодировать напрямую, сейчас нет машин с турецким и немецким, проверить не начем, а на обычной нашей кириллице с латиницей всё и так работает.
...
Рейтинг: 0 / 0
можно ли переменной типа TStringList задать кодировку
    #39905646
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
2009 и старше по-умолчанию сохраняют в UTF-16LE (насчёт LE не уверен на 100%).
В ANSI они сохраняют для Windows и в UTF-8 для других платформ
...
Рейтинг: 0 / 0
можно ли переменной типа TStringList задать кодировку
    #39906117
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63
читаю из Windows OEM одировку, положить надо в базу, если через файл, всё прекрасно, пробовал напрямую, потеря букв


Есть мнение, что StringList тут вообще ни при чём. Проблема в "положить в базу".

1. StringList хранит в Unicode, т.е. все символы там хранятся без потерь. Не надо никаких кодировок указывать.
2. Потери могут быть когда из StringList вы чем-то во что-то переводите. Вот это "положить в базу" может быть этим "чем-то".
3. Ну или проблема когда в StringList вы данные вносите. Если из OEM файла в StringList загружаете - проблема может быть здесь.
...
Рейтинг: 0 / 0
можно ли переменной типа TStringList задать кодировку
    #39906220
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
alekcvp
2009 и старше по-умолчанию сохраняют в UTF-16LE (насчёт LE не уверен на 100%).
В ANSI они сохраняют для Windows и в UTF-8 для других платформ

Хм, да, точно. Можно вторым параметром указать в чём сохранять.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / можно ли переменной типа TStringList задать кодировку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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