Символы, не входящие в ASCII, отображаются в виде полей в текстовом поле приложения VB.Net под Mono

Я использую Ubuntu 9.10 (не могу выполнить обновление из-за несовместимости некоторых приложений с более поздними версиями) со всеми установленными обновлениями.

Коллега написал приложение VB.Net, которое, кажется, работает правильно в Mono, однако существует проблема с символами в текстовых полях: если они не являются строго ASCII, они отображаются в виде блоков (типичный символ замены Windows).

Сначала я подумал, что это проблема греческих символов (которые мы используем); однако я попытался вставить некоторые западные символы с акцентированием (например, é, который находится в типичной западной кодовой странице Windows 1252), и они тоже отображались в виде прямоугольников, так что это не является проблемой с греческим языком.

Я попытался ввести греческий в текстовом поле: слово «Δοκιμή» (тест). Затем я выбрал набранный текст, нажал Ctrl-C, переключился на собственный текстовый редактор и нажал Ctrl-V. В результате получилось «Îοκιμή», греческое слово, которое довольно запуталось (думаю, UTF-8 интерпретируется как Latin-1; я много работаю с Unicode, поэтому такие вещи легко распознать :) Однако, если вы хотите чтобы проверить, запустите интерпретатор Python в терминале с поддержкой UTF-8 и попробуйте:

>>> a="Îοκιμή"
>>> print a.decode("utf8").encode("latin1").decode("utf8")
Δοκιμή

, что я набрал).

Теперь приложение также встраивает элемент управления Internet Explorer; Mono хорошо эмулирует его (я думаю, что он использует движок Gecko), и в текстовом поле внутри этого элемента управления IE я могу печатать отлично и видеть любой не-ASCII-символ, который мне нужен.

Я хотел бы знать, есть ли проблема с моей моно конфигурацией или даже если это известная ошибка; VB.Net предположительно поддерживает Unicode, но я ничего не знаю о возможностях Unicode стандартных элементов управления, которые он использует.

Итак, если вы можете мне помочь, пожалуйста, посоветуйте: что я могу сделать на стороне Ubuntu, чтобы исправить ситуацию?

4
задан 15 September 2010 в 02:38

1 ответ

Я предполагаю, что приложение VB.NET использует материал Microsoft .NET GUI, а не привязки Gtk или Qt для .NET? Просто догадываюсь, но, возможно, проблема связана с тем фактом, что Windows (и, может быть, .NET тоже?) Использует UCS-2 (или UTF-16?) И (большинство) приложений Xorg используют / ожидают UTF-8? 111] Во всяком случае, похоже, что где-то есть ошибка, и, как вы говорите, что-то конвертируется слишком много раз ...

0
ответ дан 15 September 2010 в 02:38

Другие вопросы по тегам:

Похожие вопросы: