Свойства системы IKVM не найдены

Как установить системные свойства для необработанных классов Java, используемых из кода C# через IKVM?

Я имею дело с некоторым кодом Java, который был портирован на C# с использованием IKVM. Некоторые из классов были обернуты в классы C#, но еще не все из API Java. Таким образом, у меня есть две версии некоторых классов, и поскольку только небольшая часть API была упакована, я должен использовать необработанные классы Java непосредственно в своем коде C#.

Когда я использую версию в C#, я могу правильно анализировать XML-файлы в кодировке UTF-8. Когда я пытаюсь использовать базовый класс Java напрямую, я получаю ошибки синтаксического анализа ("содержимое не разрешено в прологе"), которые указывают, что для анализа используется неправильная кодировка.

В Java мы решаем проблемы кодирования, устанавливая -Dfile.encoding=UTF-8, и я пытаюсь сделать то же самое в C# следующим образом:

    static FeedSample()
    {
        java.lang.System.setProperty("file.encoding", "UTF-8");
    }

Этот параметр выбирается, когда я использую класс-оболочку C#. Когда я использую базовый класс Java напрямую, системное свойство не определяется. Я думаю, что я упускаю что-то очевидное здесь. Я также попытался поместить -Dfile.encoding в качестве аргумента командной строки, но это не помогло.

0 ответов

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