Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
1-1094188853
Гость83
2004-09-03 09:20
2004.09.19
Уважаемые мастера! Подскажите, как программно TListBox прокрутить


3-1093303486
Вовчик
2004-08-24 03:24
2004.09.19
Ротация


3-1092755395
zazoo
2004-08-17 19:09
2004.09.19
D5: не хочет работать при работе с dbgrid на 16 цветах


1-1094113972
ZemA
2004-09-02 12:32
2004.09.19
События происходят дважды. Это нормально?


4-1091769311
JJJ
2004-08-06 09:15
2004.09.19
WinAPI: Изменение шрифта и стиля Edita