![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Akella |
|
||||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Если в Windows открыть Панель управления, а там апплет "Язык и региональные стандарты", то на закладке "Дополнительно" можно лицезреть кодовую страницу для неюникодных программ. В нешем случае там всегда установлен "Русский (Россия)".
Так вот. Как узнать, какая кодовая страница установлена на данный момент в системе? Есть примеры в интернете, которые позволяют узнать активный язык(раскладку клавиатуры), но это не то. В какую сторону копать? В общем это связано с тем, что перед началом какой-либо обработки текста нужно установить какую-либо активную раскладку клавиатуры. Для русского языка это:
А если винда, например, чешская, то нужно активировать чешский язык. Т.е. вместо '00000419' нужно подставить код чешского языка. Добавлено через 4 минуты и 9 секунд можно ещё
Добавлено через 9 минут и 16 секунд О, нашёл
|
||||||
|
|||||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Теперь при старте программы достаточно выполнить такую процедуру:
|
|||
|
||||
PsiMagistr |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Я вот свою игрушку отюникодить пытаюсь. Пока безрезультатно. Проверять приходится перестройкой Windows с Russian на любую другую кодировку. Выходит много чего, от ошибок баз, до неверных отображений символов (вопросы)
Версия: Delphi XE Используются компоненты для работы с БД (AdoTable, AdoQuery) Используются динамически создаваемые контролы. Это сообщение отредактировал(а) PsiMagistr - 11.8.2011, 09:45 -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
И в чём вопрос?
|
|||
|
||||
PsiMagistr |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Akella, да вопрос прост.
как ее заюникодить все-таки? -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
У меня встречный вопрос: а как вы умудрились сделать обратное? -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
PsiMagistr |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Мне нужен русский интерфейс на любой винде.
Ваши предложения, господа. -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
PsiMagistr напрягая телепатические возможности предположу что у вас таблицы в БД в Ansi кодировке и осуществляется преобразование Ansi -> Unicode с неправильной таблицей символов, точнее говоря с кодовой таблицей по умолчанию, которая может не совпадать с кириллической.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
PsiMagistr |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Alexeis, И каков выход?
-------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Перевести все на юникод.
|
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
А русский шрифт-то на этой винде есть? Добавлено через 5 минут и 24 секунды Какие могут быть предложения? Вам же сказали, что Delphi 2009 и выше (включая Delphi XE) ситуация по умолчанию: ваша программа одинаково работает на любой системе. При условии, что в системе стоит шрифт с кириллицей. Скажем, unicode-шрифт. Если же у вас не так - это значит, что вы у себя в коде что-то делаете не так. Внимание, вопрос: КАК мы можем это знать? Мы можем лишь угадывать, чем (гаданием) и занимается Alexeis в своём последнем посте. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Да вроде как шрифты по умолчанию и так юникодные. Если такие дело в БД, то наилучшим решением будет конвертация таблиц в utf8. Так чтобы при загрузке строк не требовалось кодовых таблиц. Если такое решение не подходит то пробуйте приведенный выше вариант с SetThreadLocale . -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
На старых системах Unicode шрифты ставились только с офисом или расширенной поддержкой символов. Т.е. по дефолту их может не быть. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Использовать юникодную среду разработки D2009+ или Юникодные компоненты, aka TNT или TMS Добавлено @ 20:19
Использовать нормальные СУБД, а не какую-то там недоСУБД. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |