Текущий архив: 2004.09.19;
Скачать: CL | DM;
Вниз
Проблеммы с кодировкой Найти похожие ветки
← →
Ertong © (2004-08-24 20:40) [0]Вот поставил себе английский XP(раньше был русский). Теперь в почти всех моих формах вместо нормально русского текста на кнопках я вижу знаки вопроса. В одном журнале читал, что это решается изменением в реестре нескольких ключей. Это сработало. Но как будет работать моя программа у других пользователей. Я ж не могу править реестр в программе, т.к. может не быть администраторских прав. И потом, другие программы работают нормально без исправления. Как избежать таких неприятностей?
P.S. Исходники DMClient"a владеют такими же проблемами. Но скачаный бинарник пашет без проблем.
← →
YurikGL © (2004-08-24 20:46) [1]Локализовывать или ставить MUIpack
← →
Ertong © (2004-08-24 21:25) [2]
> Локализовывать или ставить MUIpack
Но ведь другие программы пашут, я тоже хочу :)
← →
YurikGL © (2004-08-24 21:45) [3]Попробуй пользовать разные шрифты, потом настроек шрифтов дофигища.
← →
Ertong © (2004-08-24 22:04) [4]Пробовал.
Это не то :(
Заголовки окон - системные шрифты. А в них тоже баги.
← →
Piter © (2004-08-24 23:16) [5]Ertong © (24.08.04 20:40)
попробуй моего клиента - http://www.piter.pechora.org
Я там кое чего делал, по идее какая бы винда не была (если она win"2000 и выше), большинство текста должно отображаться по русски. Я не переделал только подсказки и заголовки окон.
Ertong © (24.08.04 20:40)
Но скачаный бинарник пашет без проблем
а-а-а. Так в DMClient все нормально отображается? Тогда проще, просто выставляй у своих контролов font.charset русский, вот и все...
← →
Ertong © (2004-08-25 01:22) [6]
> а-а-а.
Вот тут то и пироги. Скачаный ехешник нормально пашет. А если скачать сырцы и откомпилить то одни "вопросы". Почему?
> Я там кое чего делал
Если не секрет, то что именно?
← →
Piter © (2004-08-25 01:34) [7]Ertong © (25.08.04 1:22) [6]
А если скачать сырцы и откомпилить то одни "вопросы". Почему?
ну не знаю. В D7 пофигу где компилить, наверное особенности IDE D6... или какой ты там используешь...
← →
Piter © (2004-08-25 01:34) [8]Ertong © (25.08.04 1:22) [6]
Если не секрет, то что именно?
ну я так не помню... VCL правил, в общем
← →
Германн © (2004-08-25 03:58) [9]2 Ertong © (24.08.04 20:40)
Если не о чем не заботиться, то в настройках всех шрифтов указана кодировка "DEFAULT_CHARSET". Ответь, пожалуйста, на вопрос - какой шрифт является "основным" в русской версии окон, а какой в английской?!
Теперь вопрос: А что ты хочешь?
← →
nikkie © (2004-08-25 13:51) [10]>Исходники DMClient"a владеют такими же проблемами. Но скачаный бинарник пашет без проблем.
оч интересно. а чем ты компилируешь?
← →
wicked © (2004-08-25 13:59) [11]
> В одном журнале читал, что это решается изменением в реестре
> нескольких ключей. Это сработало.
хых, любители реестр править... это решается через
Control Panel - Regional and Language Options - Advanced - Language for non-Unicode programs... выставляется нужный язык и вуаля... :)
кстати, возможно, что это и есть ответом на [9]...
← →
Piter © (2004-08-25 14:07) [12]wicked © (25.08.04 13:59) [11]
хых, любители реестр править... это решается через
Control Panel - Regional and Language Options - Advanced - Language for non-Unicode programs
но есть и другие случа. Человек, например, работает в Германии :) И у него там стоит немецкий. А при этом он еще и исользует русские программы...
← →
Sergey Kaminski © (2004-08-25 14:30) [13]Всякий раз вижу подобные вопросы и недоумеваю. Откуда у людей столько проблем?
Я начинал программировать во времена ДОС (Borland Pascal, Turbo Pascal). После этого вместе со всеми перешел на Win 3.1., писал сначала на VB, после на Turbo Pascal for Win, также BC++.
Потом пошло-поехало. Win95, 98 (и русская и англ), NT 4 (то же самое). Сейчас основные машины, на которых происходит компиляция - Win2k & XP - английские, без МУИ всяких. Все программы, поступавшие в обиход имели русский интерфейс. Запускались на всевозможных машинах.
И Я НИ РАЗУ не имел сабжевых проблем. Ни разу не занисался извращением и не правил RTL. и т.п.
Нет, имел один раз и недавно. Одно диалоговое окно на машине с _РУССКИМ_ ХР показало кракозябры. Посмотрел в исходник - да, моя криворукость виновата. Случайно поменял CharSet на HEBREW_CHARSET или что-то в этом роде. Исправил. ВСЕ.
ЭТО НЕ ПРОБЛЕМА ПРОГРАММИСТА: на таргет-машине ДОЛЖНА быть нормально настроена русская локаль, ДОЛЖНЫ быть нормальные русские шрифты, если они хотят запускать русские программы. Пусть это хоть финская версия винды. ВСЕ.
← →
wicked © (2004-08-25 14:33) [14]
> но есть и другие случа. Человек, например, работает в Германии
> :) И у него там стоит немецкий. А при этом он еще и исользует
> русские программы...
и если он в Control Panel исправит язык на русский, то немецкие программы кракозябрами поплывут?... ну максимум что будет - пару умляутов не увидит...
а вообще то это касается только не-юникодовских программ... с остальными всё ок...
← →
wnew © (2004-08-25 14:33) [15]Sergey Kaminski © (25.08.04 14:30) [13]
100% верно!
← →
Sergey Kaminski © (2004-08-25 14:35) [16]И вообще, откуда сейчас-то проблемы берутся, когда винды юникодовые пошли? Это для меня загадка вроде той, почему человек, начинающий программировать, в первую очередь хочет "круглые кнопки" и в трей запуздыривать...
← →
wnew © (2004-08-25 14:36) [17]wicked © (25.08.04 14:33) [14]
> ну максимум что будет - пару умляутов не увидит
Умляуты будут заменены русскими символами. В том числе, иногда, и в файловой системе. А это уже, согласитесь, - чревато.
← →
Sewix (2004-08-25 14:42) [18]Надо было при установки XP выбрать подтержку русского языка. Там где языки и стандарты(не помню как по английски). У меня уже год английсая xp все программы корректно отображают русский текст.
← →
wnew © (2004-08-25 14:48) [19]Sergey Kaminski © (25.08.04 14:35) [16]
Винды то юникодовые, но к сожалению, сама Delphi не поддерживает Unicode, хотя есть выход - TntControl компоненты. Правда сохраняется некоторые неудобства: если в среде Delphi создавать русскоязычные приложения под не руссколокализованным Windows - в редакторе кода не возможно писать на русском. В этом случае приходится извращаться - печатать в каком-нибудь другом редакторе и потом копировать в дельфийский, после чего там будет отображено кракозябрами, но при запуске приложения - всё Ок, если конечно использовались компоненты, поддерживающие Unicode. Хотя, к примеру, родные делфийские TMemo, TBitBtn, TEdit и, наверное, ещё некоторые могут корректно отображать кириллицу. А вот TRichEdit, хотя и имеет общего предка с TMemo - никак не желает работать с кириллицей.
← →
wicked © (2004-08-25 15:29) [20]> wnew © (25.08.04 14:36) [17]
> Умляуты будут заменены русскими символами. В том числе,
> иногда, и в файловой системе.
хм... специально вчера ставил опыт (звонил знакомый - точно такая же проблема):
1. создал в фаре (он не юникодовый) файл с кирилическим названием...
2. поменял локаль на английскую...
3. поглядел в фаре на название - оно отобразилось знаками вопроса (русские надписи в фаре - кракозябрами, как и ожидалось) и файл при этом не открывался... в експлорере, напротив, всё было как и надо - кириллическое имя файла...
4. поменял локаль на русскую - всё вернулось на свои места...
отсюда напрашивается вывод, что имена фалов в юникодовых системах (win2k, winXP) хранятся в юникоде, даже если они были созданы не-юникодовыми программами...
или я где-то неправ?...
← →
wicked © (2004-08-25 15:48) [21]тест невидимых сообщений - можно удалить...
← →
GrayFace © (2004-08-25 15:48) [22]Sergey Kaminski © (25.08.04 14:30) [13]
После этого вместе со всеми перешел на Win 3.1.,
Sergey Kaminski © (25.08.04 14:30) [13]
И вообще, ошибки программ - НЕ ПРОБЛЕМА ПРОГРАММИСТА: на таргет-машине ДОЛЖНЫ быть установлены всякие дебаггеры и дизасемблеры, если они хотят запускать хоть какие-то программы.
Sergey Kaminski © (25.08.04 14:35) [16]
И вообще, откуда сейчас-то проблемы берутся, когда винды юникодовые пошли?
А проги остались АНСИшными.
Это для меня загадка вроде той, почему человек, начинающий программировать, в первую очередь хочет "круглые кнопки" и в трей запуздыривать...
Стремление к прекрасному :)
wicked © (25.08.04 15:29) [20]
> или я где-то неправ?...
Ты не прав в [15].
← →
Sergey Kaminski © (2004-08-25 15:56) [23]GrayFace © (25.08.04 15:48) [22]
Если китаец хочет, чтобы его китайская программа работала на твоей машине, он вправе расчитывать на то, что у тебя как-минимум установлены китайские шрифты. И нормально настроена система а не "реестр править".
Стремление к прекрасному :)
У всех свое представление о прекрасном. В мои представления о прекрасном, например, "круглые кнопки" не входят.
← →
Piter © (2004-08-25 16:15) [24]Sergey Kaminski © (25.08.04 14:35) [16]
И вообще, откуда сейчас-то проблемы берутся, когда винды юникодовые пошли?
а неужели непонятно? Если программа уникод не поддерживает - какая разница поддерживает ли его система? Ты что, хочешь сказать, что пишешь на дельфи и всегда используешь unicode? Вот отсюда блин и проблемы. Это очевидно.
Да и VCL Unicode не поддерживает.
← →
Piter © (2004-08-25 16:18) [25]wicked © (25.08.04 15:29) [20]
отсюда напрашивается вывод, что имена фалов в юникодовых системах (win2k, winXP) хранятся в юникоде, даже если они были созданы не-юникодовыми программами
а вот это интересный вопрос...
Sergey Kaminski © (25.08.04 15:56) [23]
он вправе расчитывать на то, что у тебя как-минимум установлены китайские шрифты
конечно. Но он не вправе требовать, чтобы у него локаль была установлена как тебе хочется. В идеале программа вообще должна запускаться корректно на какой хочешь системе (unicode"овой).
← →
Sergey Kaminski © (2004-08-25 16:21) [26]
Piter © (25.08.04 16:15) [24]
Замечу, что с появлением юникодовых Windows, НИКТО не отменял в них поддержку не юникодовых программ.
← →
Sergey Kaminski © (2004-08-25 16:23) [27]
В идеале программа вообще должна запускаться корректно на какой хочешь системе
Не поверишь, так оно и есть.
← →
wnew © (2004-08-25 16:41) [28]wicked © (25.08.04 15:29) [20]
> отсюда напрашивается вывод, что имена фалов в
> юникодовых системах (win2k, winXP) хранятся в юникоде,
> даже если они были созданы не-юникодовыми
>программами...
> или я где-то неправ?...
Да, где-то не прав. Всё дело в том, что проводник в Win9x и тем более в новых Windows может отображать имена файлов обозванных по русски совершенно корректно. Но! Попробуй, используя TTreeView и TListView, вывести корректно дерево файлов в этих компонентах, разумеется, на не русском Windows (имею в виду региональные настройки). Даже, если исползовать COM интерфейс и информацию о файловой системе вытягивать прямо из именного файлового пространства Windows - ничего кроме знаков вопрса не получишь. А вот, если использовать TntControl компоненты - то всё в полном ажуре.
← →
GrayFace © (2004-08-25 17:53) [29]>Sergey Kaminski © (25.08.04 14:30) [13]
> После этого вместе со всеми перешел на Win 3.1.,
Это я хотел сказать, что далеко не все переходили на Win3.1
← →
GrayFace © (2004-08-25 18:00) [30]Sergey Kaminski © (25.08.04 15:56) [23]
> У всех свое представление о прекрасном. В мои
> представления о прекрасном, например, "круглые кнопки" не входят.
В мое тоже, но неXPшные кнопки уж не в какое прекрасное и подавно не лезут.
Sergey Kaminski © (25.08.04 16:21) [26]
Замечу, что с появлением юникодовых Windows, НИКТО не отменял в них поддержку не юникодовых программ.
Отменяли. Чтобы в уникодовских виндах скопировать что-то русское в буфер обмена надо переключать раскладку клавы.
← →
Piter © (2004-08-25 18:00) [31]Sergey Kaminski © (25.08.04 16:21) [26]
Замечу, что с появлением юникодовых Windows, НИКТО не отменял в них поддержку не юникодовых программ
и что? Слушай, я не понимаю о чем мы говорим. Так о чем все таки? Что ты хочешь сказать. Я хочу сказать простую вещь - что если у тебя программа русская, а у человека немецкая локаль - то будут пробелемы. Ты с этим споришь?
wnew © (25.08.04 16:41) [28]
Да, где-то не прав. Всё дело в том, что проводник в Win9x и тем более
странный ты человек. Говоришь, что не прав и далее таки подтверждаешь свою правоту...
Попробуй, используя TTreeView и TListView
так эти компоненты тоже ANSI"шные! А что ты хотел?! Выстави им Font правильный.
А вот, если использовать TntControl компоненты - то всё в полном ажуре
Вот именно! А ПОЧЕМУ? Не из-за этого ли:
отсюда напрашивается вывод, что имена фалов в юникодовых системах (win2k, winXP) хранятся в юникоде, даже если они были созданы не-юникодовыми программами
Если из-за этого - то странно однако! Хотя еще вот какое предположение - может, это в NTFS встроен Unicode? ты попробуй тоже самое на FAT... хотя нет, на фат тоже самое будет.
Вот и вопрос - что, в FAT предусмотрено два байта на буквы имени?
← →
wnew © (2004-08-25 18:12) [32]Piter © (25.08.04 18:00) [31]
:)) Перечитай пост 28, а потом иди отдыхать:)
← →
Sergey Kaminski © (2004-08-25 18:18) [33]
Я хочу сказать простую вещь - что если у тебя программа русская, а у человека немецкая локаль - то будут пробелемы. Ты с этим споришь?
Я спорю, с тем, что есть такая проблема. НЕТ такой проблемы. Как нет проблемы: воровать ли серябряные ложки в гостях или не воровать.
Если программа русская, а у человека немецкая локаль, то это проблема НЕ программиста. Может у того человека вообще нет Windows или он вообще не умеет компьютером пользоваться, в т.ч. настроить систему. Как нет проблемы программиста баз данных в том, что у человека на "той" машине может не стоять BDE.
← →
Sergey Kaminski © (2004-08-25 18:20) [34]Нет проблемы китайского программиста в том, что у тебя иероглифы не показываются. Поставь шрифты, настрой локаль и все претензии к китайцу исчезнут.
← →
Sergey Kaminski © (2004-08-25 18:21) [35]>> GrayFace © (25.08.04 17:53) [29]
>> Это я хотел сказать, что далеко не все переходили на Win3.1
Простите великодушно
← →
Piter © (2004-08-25 18:25) [36]wnew © (25.08.04 18:12) [32]
:)) Перечитай пост 28, а потом иди отдыхать:)
я этот пост читал, между прочим. Я еще на него и ответил. Теперь ответь ты, что не так?
Единственное, что я ник перепутал :)
Sergey Kaminski © (25.08.04 18:18) [33]
Если программа русская, а у человека немецкая локаль, то это проблема НЕ программиста
хорошо. Значит, это проблема пользователя? Ок.
А теперь если ты такой умный - ответь. Если нужно использовать английские программы (это понятно), немецкие и при этом еще и русские - что делать?! Хочешь сказать такого не бывает? Спроси у wnew - он тебе расскажет.
Ты хоть сам то понимаешь для ЧЕГО делался Unicode, а?
Sergey Kaminski © (25.08.04 18:20) [34]
Поставь шрифты, настрой локаль
ты совсем что ли? Причем здесь Unicode и локаль? Объясни плиз как сочетается Unicode и локаль? Unicode РАЗРАБАТЫВАЛСЯ для того, чтобы не зависеть от локали. Думай, прежде чем говоришь.
← →
wnew © (2004-08-25 18:28) [37]Sergey Kaminski © (25.08.04 18:20) [34]
Такой подход не всегда оправдан. Первый же пример - интернет-браузер. А если требуется создать HTML-редактор, который предполагается использовать в Германии, но способным создавать русскоязычные странички? А различные переводчики? Ну и т.д. Да и вообще, коли придумали Unicode - лучше его использовать, тем более, думаю, что для разработчиков, особенно шароварщиков - это только прибавит выгоды. К примеру, здесь в Германии, не малое колличество людей с удовольствием пользовались бы русскими программами, но естественно у всех установлен немецкий Windows, а делать русскую локализацию - означает создавать те же проблеммы для немецких программ.
← →
Piter © (2004-08-25 18:35) [38]Да он вообще противоречит самому себе:
Sergey Kaminski © (25.08.04 16:23) [27]
В идеале программа вообще должна запускаться корректно на какой хочешь системе
Не поверишь, так оно и есть.
и потом:
Нет проблемы китайского программиста в том, что у тебя иероглифы не показываются. Поставь шрифты, настрой локаль и все претензии к китайцу исчезнут.
← →
Piter © (2004-08-25 18:37) [39]Sergey Kaminski © (25.08.04 14:35) [16]
И вообще, откуда сейчас-то проблемы берутся, когда винды юникодовые пошли?
То есть, с одной стороны человек говорит, что Unicode как раз спасает от проблем, нет нужды настраивать локаль. А с другой он потом тут же утверждает, что локаль должна быть настроена "правильно".
ну так если локаль настроена "правильно" - нафига тогда Unicode вообще?
← →
Sergey Kaminski © (2004-08-25 18:43) [40]
ты совсем что ли? Причем здесь Unicode и локаль? Объясни плиз как сочетается Unicode и локаль? Unicode РАЗРАБАТЫВАЛСЯ для того, чтобы не зависеть от локали.
Молодец, разъяснил мне, непутевому, для чего юникод придумали.
>>wnew © (25.08.04 18:28) [37]
Ваши примеры как раз из той области, когда приложение именно и должно использовать юникод, с чем я и не спорил.
А вотвместо нормально русского текста на кнопках я вижу знаки вопроса
это несколько другое, имхо.
Страницы: 1 2 вся ветка
Текущий архив: 2004.09.19;
Скачать: CL | DM;
Память: 0.59 MB
Время: 0.055 c