Проблема с unicode строками

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
_igor_
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 25.08.2007 (Сб) 14:00

Проблема с unicode строками

Сообщение _igor_ » 14.05.2011 (Сб) 13:53

Добрый день уважаемые участники форума. Опишу суть вопроса. Потребовалось отображать в текстовом поле (TextBox) и затем работать с текстом на испанском языке. Но когда вводишь или копируешь-вставляешь такие строки, то TextBox конвертит их в ANSI и получается совсем не то что надо. Как я выяснил, контролы в VB работают только с ANSI строками, т.е. на русской Виндоус будут нормально отображаться русские, на испанской - испанские и т.д. То есть я так понял Бэйсик конвертит строку из юникода в тот чарсет, который родной для установленного Виндоус. Эта проблема решается как оказалось, нужно найти контролы для VB6 поддерживающие юникод, я нашел и подключил контролы от Timo Soft, как написано у него это Виндовые стандартные контролы в обвертке. Теперь даже на русской Виндоус я копирую строку на испанском и она отображается корректно, например такую - aeiouáéíó. Но потом я обращаюсь в коде к свойству Text этого контрола, и он возвращает снова строку с другими замененными символами, хотя отображает все правильно.
Буду рад любым советам
Спасибо.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Проблема с unicode строками

Сообщение Хакер » 14.05.2011 (Сб) 14:23

_igor_ писал(а):Но потом я обращаюсь в коде к свойству Text этого контрола, и он возвращает снова строку с другими замененными символами, хотя отображает все правильно.

Чем докажешь?

_igor_ писал(а):Буду рад любым советам

Выкинуть контролы от Timo Soft и сделать свои.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

_igor_
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 25.08.2007 (Сб) 14:00

Re: Проблема с unicode строками

Сообщение _igor_ » 15.05.2011 (Вс) 6:03

Хакер писал(а):
_igor_ писал(а):Но потом я обращаюсь в коде к свойству Text этого контрола, и он возвращает снова строку с другими замененными символами, хотя отображает все правильно.

Чем докажешь?

_igor_ писал(а):Буду рад любым советам

Выкинуть контролы от Timo Soft и сделать свои.


Это конечно радикальный метод) Но я пробовал еще и Windows Forms 2.0 controls которые сама Microsoft советует, с ними тоже самое, отображают норм, а свойство text карежится.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Проблема с unicode строками

Сообщение Хакер » 15.05.2011 (Вс) 12:24

1) За оверквотинг в следующий раз будешь наказан.
2)
_igor_ писал(а):а свойство text карежится.

Если в результате эксперимента выяснилось, что у образца отрицательная масса, это ещё не значит, что у образца отрицательная масса; возможно просто кривой экспермиент.
Ещё раз: чем докажешь (откуда это следует?), что свойство Text корёжится?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

_igor_
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 25.08.2007 (Сб) 14:00

Re: Проблема с unicode строками

Сообщение _igor_ » 15.05.2011 (Вс) 17:51

Хакер писал(а):1) За оверквотинг в следующий раз будешь наказан.
2)
_igor_ писал(а):а свойство text карежится.

Если в результате эксперимента выяснилось, что у образца отрицательная масса, это ещё не значит, что у образца отрицательная масса; возможно просто кривой экспермиент.
Ещё раз: чем докажешь (откуда это следует?), что свойство Text корёжится?


Может все-таки будете? При всем уважении, я с Вами за одним столом не сидел. Или стаж на форуме дает право тыкать?)
Доказать могу тем, что используя Debug.print я получаю строку, отличную от отображаемой визуально, и они не равны если напрямую забить обе строки (исходную и свойство Text) в StrCompare

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Проблема с unicode строками

Сообщение arthur2 » 15.05.2011 (Вс) 18:12

_igor_ писал(а):Доказать могу тем, что используя Debug.print я получаю строку, отличную от отображаемой визуально
Еще бы :) С чего ты решил, что дебагер может выводить уникод-то? Ой, прости: с чего Вы решили?
Артур
 
   

_igor_
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 25.08.2007 (Сб) 14:00

Re: Проблема с unicode строками

Сообщение _igor_ » 15.05.2011 (Вс) 18:25

arthur2 писал(а):
_igor_ писал(а):Доказать могу тем, что используя Debug.print я получаю строку, отличную от отображаемой визуально
Еще бы :) С чего ты решил, что дебагер может выводить уникод-то? Ой, прости: с чего Вы решили?

Согласен, дебаггер не может
Instr тоже не ищет подстроку из строки свойства Text в исходной строке, хоть BinaryCompare хоть TextCompare

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Проблема с unicode строками

Сообщение arthur2 » 15.05.2011 (Вс) 18:43

Код покажи: как присваиваешь текст переменной, как считываешь, как сравниваешь.

А для проверки корректности уникода в переменных лично я пользуюсь MessageBoxW (дёшево и сердито :) )
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Проблема с unicode строками

Сообщение Хакер » 15.05.2011 (Вс) 18:46

_igor_ писал(а):Может все-таки будете? При всем уважении, я с Вами за одним столом не сидел. Или стаж на форуме дает право тыкать?)

Во-первых (перекочевало из фидонета). Во-вторых, в личной переписке я практикую обращение на вы, а на форуме (и в чатах) — своя специфика общения. Не нравится — извини. Тыканье здесь не из-за неуважения, а из-за традиции.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Проблема с unicode строками

Сообщение Antonariy » 16.05.2011 (Пн) 10:26

_igor_ писал(а):
arthur2 писал(а):
_igor_ писал(а):Доказать могу тем, что используя Debug.print я получаю строку, отличную от отображаемой визуально
Еще бы :) С чего ты решил, что дебагер может выводить уникод-то? Ой, прости: с чего Вы решили?

Согласен, дебаггер не может
Instr тоже не ищет подстроку из строки свойства Text в исходной строке, хоть BinaryCompare хоть TextCompare

Если нужен разбор строк, то нужно переходить на vb.net, сэкономит массу времени и нервов.
Лучший способ понять что-то самому — объяснить это другому.

_igor_
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 25.08.2007 (Сб) 14:00

Re: Проблема с unicode строками

Сообщение _igor_ » 16.05.2011 (Пн) 14:33

Код покажи: как присваиваешь текст переменной, как считываешь, как сравниваешь.

Присваиваю так - просто ввожу строку с клавы в текстбокс в запущенном приложении)
Cчитываю так примерно String1 = Textbox1.Text
Antonariy писал(а):Если нужен разбор строк, то нужно переходить на vb.net, сэкономит массу времени и нервов.

Перепишу лучше на Adobe Flex, т.к. подозреваю много еще будет подобных трудностей с локализацией и прочим.
Спасибо всем принявшем участие)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 24

    TopList  
cron