Различия между Unix и файлы Windows

голоса
14

Могу ли я, полагая, что единственное различие между «файлов Windows» и «файлов Unix» является перевод строки?

У нас есть система, которая была передвинута из машины окон к машине UNIX и возникают проблемы с форматом.

Мне нужно автоматизировать перевод между Unix / Windows до файлов доставляются к системе в наших «transportsystem». Я, вероятно, нужно что-то, чтобы определить текущий формат и что-то, чтобы преобразовать его в другой формат. Если это только символ новой строки вот большая разница, то я рассматриваю только чтение файлов с java.io. Насколько я знаю, они способны работать как с Readline. А потом просто написать каждую строку обратно с

while (line = readline)
    print(line + NewlineInOtherFormat)
....

Резюме:

samjudson :

Это различие только в текстовых файлах, где UNIX использует одну питающую линию (LF) для обозначения новой строки, Windows использует возврат каретки / перевод строки (CRLF) и Mac использует только CR.

к которому Cebjyre конкретизирует:

OS X использует LF, так же, как UNIX - MacOS 9 и ниже ли использовать CR хотя

Mo

Там также может быть разница в кодировки символов для национальных символов. Там нет «Юникс-кодирование», но многие Linux-варианты использования UTF-8 в качестве кодировки по умолчанию. Mac OS (которая также является Unix) использует свою собственную кодировку (MacRoman). Я не уверен, какие окна кодирования по умолчанию.

Макдауэлл

В дополнение к различиям новой строки, метка порядка байтов может вызвать проблемы, если файлы рассматриваются как Unicode в Windows.

Cheekysoft

Тем не менее, еще один набор проблем, с которыми вы можете столкнуться может быть связан с одиночными / кодировок многобайтными. Если вы видите странные неожиданные символов (не отслуживших линии), то это может быть причиной. Особенно, если вы видите квадратики, вопросительные знаки, вверх-вниз, вопросительные знаки, дополнительные символы или неожиданные акцентированные символы.

Сэди

В UNIX файлы, которые начинаются с. скрыты. На окнах, это флаг файловой системы, что вы, вероятно, не имеют легкий доступ. Это может привести к файлам, которые должны быть скрыты теперь становится видимым на клиентских машинах.

Права доступа к файлу изменяется между ними. Вы, вероятно, найти, при копировании файлов на системе UNIX, что файлы теперь принадлежат пользователю, который сделал копирование и имеют ограниченные права. Вы должны будете использовать Чаун / CHMOD, чтобы убедиться, что правильные пользователи имеют доступ к ним.

Там существует инструмент, чтобы помочь с этой проблемой:

pauldoo

Если вы просто заинтересованы в содержании текстовых файлов, то да нитевидные окончания различны. Взгляните на то, как dos2unix, это может быть полезным здесь.

Cheekysoft

Как следует pauldoo, инструменты, такие как dos2unix могут быть очень полезны. Обратите внимание, что это может быть на вашем Linux системы / Unix, как fromdos или tofrodos, или, возможно, даже в качестве общего назначения набора инструментов Recode.

Помощь для Java кодирования

Cheekysoft

При записи файлов или чтение из файлов (что вы находитесь в контроле), часто стоит указать кодировку использовать, так как большинство методов Java позволяет это. Тем не менее, также обеспечение того, чтобы система локала матчи могут сэкономить много боли

Задан 20/08/2008 в 10:18
источник пользователем
На других языках...                            


6 ответов

голоса
11

Это различие только в текстовых файлах, где UNIX использует одну питающую линию (LF) для обозначения новой строки, Windows использует возврат каретки / перевод строки (CRLF) и Mac использует только CR.

Бинарные файлы не должно быть никакой разницы (т.е. JPEG на машине окна будет байт в байт так же, как же JPEG на коробке Unix.)

Ответил 20/08/2008 в 10:22
источник пользователем

голоса
4

Там также может быть разница в кодировки символов для национальных символов. Там нет «Юникс-кодирование», но многие Linux-варианты использования UTF-8 в качестве кодировки по умолчанию. Mac OS (которая также является Unix) использует свою собственную кодировку (MacRoman). Я не уверен, какие окна кодирования по умолчанию.

Но это может стать еще одним источником проблем (кроме различных переносов).

Каковы ваши проблемы? Проблемы, связанные с LINEBREAK можно легко исправить с помощью dos2unix программ или unix2dos на Unix-машине

Ответил 20/08/2008 в 10:22
источник пользователем

голоса
2

В дополнение к ответам, вы можете найти проблемы с различными файловыми системами:

  • В UNIX файлы , которые начинаются с . скрыты. На окнах, это флаг файловой системы , что вы , вероятно , не имеют легкий доступ. Это может привести к файлам, которые должны быть скрыты теперь становится видимым на клиентских машинах.

  • Права доступа к файлу изменяется между ними. Вы, вероятно , найти, при копировании файлов на системе UNIX, что файлы теперь принадлежат пользователю , который сделал копирование и имеют ограниченные права. Вы должны будете использовать Чаун / CHMOD , чтобы убедиться , что правильные пользователи имеют доступ к ним.

Ответил 20/08/2008 в 10:42
источник пользователем

голоса
2

Если вы просто заинтересованы в содержании текстовых файлов, то да нитевидные окончания различны. Взгляните на то , как dos2unix , это может быть полезным здесь.

(Конечно, есть много других вещей, которые делают Unix и окно файлов разные, но я не думаю, что прямо сейчас вы заинтересованы в этих других отличиях.)

Ответил 20/08/2008 в 10:23
источник пользователем

голоса
1

Как следует pauldoo, инструменты , такие как dos2unix могут быть очень полезны. Обратите внимание , что это может быть на вашем Linux системы / Unix , как fromdos или tofrodos , или , возможно , даже в качестве общего назначения набора инструментов Recode .

Тем не менее, еще один набор проблем, с которыми вы можете столкнуться может быть связан с одиночными / кодировок многобайтными. Если вы видите странные неожиданные символов (не отслуживших линии), то это может быть причиной. Особенно, если вы видите квадратики, вопросительные знаки, вверх-вниз, вопросительные знаки, дополнительные символы или неожиданные акцентированные символы.

Выполнение команды локаль на вашем * NIX поле покажет вам , что система локаль. Если это отличается от кодировки , используемой в текстовых файлах , которые были переданы в течение от машины окна, то это может иногда вызвать проблемы, в зависимости от использования этих файлов. Вы можете использовать очень мощный перекодировать команду , чтобы попытаться конвертировать между различными кодировками, а также любые вопросы , окончание строки. перекодировать -l покажет вам все форматы и кодировки , что инструмент может конвертировать между ними. Это, вероятно, будет очень длинный список.

При записи файлов или чтение из файлов (что вы находитесь в контроле), часто стоит указать кодировку использовать, так как большинство методов Java позволяет это. Тем не менее, также обеспечение того, чтобы система локала матчи могут сэкономить много боли.

Ответил 20/08/2008 в 10:40
источник пользователем

голоса
1

В дополнение к различиям новой строки, то метка порядка байтов может вызвать проблемы , если файлы рассматриваются как Unicode в Windows.

Ответил 20/08/2008 в 10:28
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more