Порядок следования байтов, генерирующий файл с использованием Mono в Ubuntu - PullRequest
0 голосов
/ 28 октября 2010

Моя утилита .NET AjGenesis - это инструмент генерации кода. Скомпилированные двоичные файлы работают без сбоев под Ubuntu 10.x и Mono. Но у меня есть проблема: генерируя текстовый файл Java (обычный текстовый файл для моего инструмента), он генерирует метку порядка байтов в начале каждого файла. Я использую System.Text.Encoding.Default: в Windows все в порядке, в Ubuntu метка порядка байтов составляет три байта, что указывает на UTF8, я думаю.

Это различие является проблемой, когда я хочу скомпилировать файлы .java с использованием ant или javac, спецификации приводят к ошибкам. Тогда:

  • Какую кодировку использовать в Ubuntu / Mono, чтобы сгенерированные файлы могли обрабатываться javac?
  • Я попытался javac-кодирование UTF8 без успеха, какие-либо подсказки? Мое предположение: это не для пропущенных спецификаций.
  • Я пробовал System.Text.Encoding.ASCII. Но мои сгенерированные файлы имеют файлы не ASCII (испанские буквы с акцентом). Если я меняю кодировку, добавляются спецификации, а javac отказывается от файлов. Любое предложение?

ТИА

Ответы [ 2 ]

1 голос
/ 28 октября 2010

Попробуйте создать экземпляр System.Text.UTF8Encoding и указать значение параметра, не содержащее спецификации.Вы можете прочитать об этом здесь: http://msdn.microsoft.com/en-us/library/s064f8w2.aspx

1 голос
/ 28 октября 2010

Не используйте Encoding.Default.Зачем делать вашу выходную платформу конкретной?Используйте UTF-8 - и если вам нужно использовать UTF-8 без спецификации, вы можете сделать это с помощью:

Encoding utf8 = new UTF8Encoding(false);

Честно говоря, я удивлен, что javac не работает.Вы говорите, что пробовали «безуспешно» - каков был результат?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...