zedxxx
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вы получите строку в кодировке, совпадающей с системной. Если системная локаль может быть однозначно преобразована в однобайтовую кодировку, то никаких проблем не будет (если не рассматривать вариант передачи/сохранении таких строк наружу). В юникодных версиях Delphi тип AnsiString привязан к текущей системной кодировке. И вы можете создавать свои строковые типы с заданной кодировкой: Цитата: type TAnsiString1251 = type AnsiString(1251); | Узнать, возможно ли вообще безопасно конвертировать из юникодного типа string, в однобайтовый AnsiString (в определённой кодировке), можно при помощи функции WideCharToMultiByte, которая возвращает специальный булевый флаг (параметр lpUsedDefaultChar), в случае если ей пришлось заменять не вмещающиеся символы на спец. символ (обычно знак ?). Добавлено: Но лучше такими преобразованиями в AnsiString не заниматься, а использовать всюду юникодные строки. | Всего записей: 1531 | Зарегистр. 14-07-2008 | Отправлено: 21:48 11-10-2017 | Исправлено: zedxxx, 21:49 11-10-2017 |
|