![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() ![]() |
![]() |
TarasBer |
![]()
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
На моей машине русский текст отображается корректно. На другой (тоже русская ХР) - нет, отображаются закорючки. На английской - хз, не могу проверить. Так вот, у меня вопрос. Преобразование простой строки в юникодовую (а именно оно происходит при отправке сообщения) делается через какую-то виндовую функцию. Как функция определяет, какую кодировку при этом брать? Какие-то настройки системы? Настройки программы? -------------------- |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Насколько я понимаю, вот это:Как общие элементы управления конвертируют строки между ANSI и Unicode? - твой случай?
|
TarasBer |
![]()
Сообщение
#3
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну типа того.
Правда, я всё равно ничего не понимаю. Написано, что по умолчанию преобразование производится для кодировки ANSI. В этом наборе символов, составленном не нами, предусмотрели полный русский алфавит? Или это только в русской винде так? На другом компе вообще так вышло, что те компоненты, названия которым были даны при создании (я делал преобразование PWideChar(WideString(S))), видны коряво, а те, которым были даны позже, через SetText, на тех всё нормально. Долгое разглядывание функции WideString привело меня на стандартную функцию из винды. То есть это оно работает не так, как преобразователь при обращении к компонентам? -------------------- |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Значит, смотри...
Я сейчас тестировал свой код на машине, где про русский язык и кириллицу вообще ничего не знают. Тут стоит HEBREW для не-юникода (я это сделал специально даже не на свое машине, а на чужой). Так вот. Делаю так: const CP_THREAD_ACP = 3;, вызываю - так: case Msg of(самой первой строкой программы запихал SetThreadLocale (1049);, чтоб насильственно переключить поток на русскую локаль). В Эдите появляется ровно та надпись, которую я посылаю. На русском языке... Исходник сохранен не в Юникоде, а в Win1251, компилировалось все это дело обычным консольным FPC, так что и тут зависимости от IDE никакой, ее просто нет (я про IDE). |
![]() ![]() |
![]() |
Текстовая версия | 17.06.2025 19:55 |