Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Проблема с кодировкой текста.


Автор: Druidishe 8.8.2011, 07:38
Ситуация следующая. читаю из файла (utf8). получаю нужную строку и преобразую ее Utf8toansi(stroka) получаю нечто подобное Fabiański, мне нужно данный результат получить в следующем виде Fabianski
как мне это сделать??? Delphi 2010...

Автор: Frees 8.8.2011, 07:41
В D2010 строки уже имеют формат UTF Utf8toansi не нужен.

Автор: Druidishe 8.8.2011, 07:45
если просто считать строку получаются нечитаемые символы... щас не могу продемонстрировать то что получается. но в программе они не отображаются как хотелось бы.

т.е. изначально из кракозябры с помощью преобразования я получаю допустим такой символ ń, а мне хотелось бы получить n. 

Автор: Frees 8.8.2011, 09:10
для начала
http://local.joelonsoftware.com/wiki/Абсолютный_Минимум,_который_Каждый_Разработчик_Программного_Обеспечения_Обязательно_Должен_Знать_о_Unicode_и_Наборах_Символов

Ка проверяли что в файле все правильно лежит?

Автор: CodeMonkey 8.8.2011, 18:35
Вы как-то странно вопрос задаёте. 

Если вопрос в преобразовании ń в n, то причём тут чтение из файла (в этом случае, как я понимаю, в файле записано именно ń)?

Если вопрос в неправильном чтении из файла (в файле записано n, но читается ń), то причём тут преобразование?

Вы поясните вашу ситуацию.

Добавлено через 5 минут и 3 секунды
P.S. Если вопрос в конвертации ń в n, то я бы глянул в сторону FoldString - конвертируем строку в композитную форму - когда акценты следуют за буквами (два символа на ń: n + combining '), а затем удаляем акценты из строки (тип определяем через GetStringTypeW).

Автор: Druidishe 9.8.2011, 05:20
в файле записано ń но в UTF8 если просто отобразить строку с такими символами получаем кракозябры, при преобразовании в ansi получаем нормальное отображение = "ń" но с символами из польского алфавита (такой результат не нужен). Я хочу узнать можно ли как то эти строки быстро преобразовать в английское написание или же придется перебором заменять символы.

Автор: CodeMonkey 9.8.2011, 05:44
Цитата(Druidishe @  9.8.2011,  06:20 Найти цитируемый пост)
получаем нормальное отображение = "ń" но с символами из польского алфавита


Что это значит?

В Польше вроде http://msdn.microsoft.com/en-us/goglobal/cc305143 используется. Т.е. юникодный http://en.wikipedia.org/wiki/%C5%83 (http://www.fileformat.info/info/unicode/char/0144/index.htm), который был загружен из UTF-8 файла ($C584), будет спроецирован в ANSI-символ #241/#$F1, который и есть ровно http://en.wikipedia.org/wiki/%C5%83 ("http://msdn.microsoft.com/en-us/goglobal/cc305143").

Можно теперь пояснить, что имелось в виду под "с символами из польского алфавита"?

Или вам тупо ń не нужен - вообще ни в каком виде?

Я просто никак догнать не могу, причём тут UTF-8 файл.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)