|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.04.2007, 20:10 | #1 |
Пользователь
Регистрация: 05.04.2007
Сообщений: 10
|
Смена кодировок в тексте
добрый день! проблема такая.
У пользователя текст со смешанием русского с разными другими языками - это электронные учебники, где в математике встречаются греческие символы, в немецком и французском соотетсвенно русские символы смешаны с европейскими и т.д. Но мне необходимо хранить все это в обычных текстовых строках. Выход был найден такой - хранить в отдельных строчках каждый кусок с разной кодировкой, а рядом тип кодировки для каждой строки. Потом пользователям для редактирования каждый кусок по очереди я показываю в объекте Memo, включая шрифту каждый раз нужную кодировку. А для показа им готового смешанного текста вывожу на Canvas все куски тоже по очереди, каждому указывая кодировку. В обычном Блокноте Windows все выглядит примерно так же - одни и те же символы при смене кодировки через меню Шрифт превращаются в символы разных кодировок. На свежеустановленной винде все работает. Однако, оказалось, что в каких-то ситуациях винда начинает работать иначе. В том же блокноте, и, соответсвенно в моей программе тоже, смена кодировки уже ни к чему не приводит, блокнот неожиданно начинает работать, видимо, в Юникоде, и текст набранный в русской раскладке никакой силой не превращается в греческий. Хотя, повторю, после установки видны, ситуация была не такой, и блокнот, и все текстовые объекты Борлада, работали с текстом "по старинке" - символ+кодировка. Перейти полностью на Юникод я не могу, т.к. у пользователей сплошь и рядом win98. Да и, если честно, не знаю как получается, что объекты, работающие с текстом - и Memo, и кнопки - работают то так, то иначе. Видимо, они базируются на какой-то установке винды - может кто-то знает - что это за установка, какая сила ее меняет, и как ее хотя бы проверить для корректной работы программы? Спасибо! |
05.04.2007, 20:48 | #2 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,504
|
Можно проблему решить используя картинки? текст на картинке. а потом сливать на канву. *.gif - много места не занимает.
|
05.04.2007, 20:57 | #3 |
Пользователь
Регистрация: 05.04.2007
Сообщений: 10
|
спасибо, но с картинками не выйдет - пользователи должны иметь возможность править текст ((.
Да и тут уже просто интересно разобраться - почему такое происходит, ведь блокнот - вроде ж бы примитивнейшая вещь - а такие чудеса с ним. И ведь это отражается на всех борландовских объектах, которые с текстом работают, т.е. должны были с этим столкнуться все, кто мультиязычные интерфейсы создает. Неужели не сталкивались? |
06.04.2007, 11:55 | #4 |
Пользователь
Регистрация: 05.04.2007
Сообщений: 10
|
ответ найден своими силами, оказалось что на компе в панели управления/Язык и региональные стандарты была отключена поддержка всех языков кроме русского - кто-то решил экономить место и все остальные раскладки поудалял...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск в тексте | Rigard | Общие вопросы Delphi | 8 | 15.10.2008 00:06 |
Помогите с программой на С++ "текстовый редактор с поддержкой нескольких кодировок" | alwa | Помощь студентам | 1 | 05.06.2008 19:48 |
Проблема кодировок!!! | chekanoff | Общие вопросы Delphi | 4 | 04.12.2007 00:03 |
картинка в тексте | Prisian | Общие вопросы Delphi | 2 | 05.10.2007 14:01 |