Страница 2 из 2
Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 27.03.2014 18:30:27
Дож
Мне очень стыдно, но я не понял что из этого следует в моем случае.
Что Вам нужно-то?
Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 27.03.2014 18:32:45
ya_vanka
Мне нужно, чтобы работала функция UTF8ToAnsi.
К вопросу о локали:
locale
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=
Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 27.03.2014 18:33:21
Дож
Ну да, поэтому UTF8ToAnsi и переводит Вам строки в кодировку utf-8.
Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 27.03.2014 18:38:29
ya_vanka
A-a.
В общем путаница у меня в голове. Я почему-то думал, что функция UTF8ToAnsi преобразует строку из кодировки UTF8 в CP1251.
А есть такая функция?
Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 27.03.2014 18:51:55
Дож
Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 27.03.2014 18:58:14
ya_vanka
Спасибо за помощь!
Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 28.03.2014 09:37:15
alexs
ya_vanka
Забудьте про обращение к строке как к массиву символов. По крайней мере это относится к AnsiString. Либо переходите на WideString либо использовать функции UTF8Pos, UTF8Copy и подобные.
Строки UTF8 должны обрабатываться как поток а не как массив. Т.е. вы должны запоминать позицию превыдущего обработанного символа и следующую итерацию начинать с неё. Иначе будет просадка по скорости.
Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 28.03.2014 23:06:08
xdsl
ya_vanka, в общем случае к widestring тоже бесполезно обращаться как к массиву символов. Во первых - суррогатные пары, во вторых - диакритические знаки. Плюс еще несколько фишек в стандарте юникода, которые, правда, мало кто реализовал.
Собственно, пишу потихоньку учебно-методическое пособие по Free Pascal, в третьей части которого подробно рассказывается об обработке строк. Почитайте, возможно поможет в понимании обработки юникода:
https://shgpi.edu.ru/forum/viewtopic.php?t=1048
Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 01.04.2014 12:56:06
ya_vanka
Спасибо, почитаю.
Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 03.04.2014 08:43:52
bormant
xdsl,
по поводу 3-ей части есть такое замечание:
стр. 10
Этот набор символов описывается терминами "базовый план", Basic Multilingual Plane, BMP.
Произошла путаница с plan, перевод "plane" с английского -- плоскость, уровень. Вместо "базовый план" лучше использовать что-вроде "Базовый мультиязычный уровень", "основной мультиязычный уровень", или даже "набор".
Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 07.04.2014 12:21:05
xdsl
bormant
Логика в Ваших словах есть. Сейчас понимаю, что слово "план" может ввести в заблуждение читателей. Исправлю.
Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 11.04.2014 19:46:34
zoltanleo
xdslеще есть замечания:
1. повсюду в тексте встречается раздельное написание "не смотря", хотя иногда оно ошибочно. Можно воспользоваться в качестве ориентира
этой статьей2. часть 3 стр 19
фраза "поэтому строках 1-3 производится подключение модуля cwstring в случае, если Windows не является целевой платформой" разве не вступает в противоречие с кодом ?
Код: Выделить всё
uses {$ IFENDEF WINDOWS}
cwstring, {$ ENDIF} ...
зы. самый дельный мануал, который я читал. Респект автору. Жду продолжения.

Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 13.04.2014 12:54:41
xdsl
zoltanleo писал(а):xdslеще есть замечания:
1. повсюду в тексте встречается раздельное написание "не смотря", хотя иногда оно ошибочно. Можно воспользоваться в качестве ориентира
этой статьей
Учту.
zoltanleo писал(а):2. часть 3 стр 19
фраза "поэтому строках 1-3 производится подключение модуля cwstring в случае, если Windows не является целевой платформой" разве не вступает в противоречие с кодом ?
Код: Выделить всё
uses {$ IFENDEF WINDOWS}
cwstring, {$ ENDIF} ...
Не вступает. {$IF
NDEF WINDOWS} переводится как "если
не виндовс ..."
zoltanleo писал(а):зы. самый дельный мануал, который я читал. Респект автору. Жду продолжения.

Спасибо! Разгребусь с текучкой и продолжу в мае-июне.
Re: проблемы с кириллицей после трансляции проекта с дельфи
Добавлено: 13.04.2014 23:15:24
zoltanleo
xdsl писал(а):{$IFNDEF WINDOWS} переводится как "если не виндовс ..."
надо же, ни разу встречал. Буду знать ...