Как правильно открыть текстовый файл MacOs на Win?

Как преобразовать текстовые файлы Mac в текстовые файлы Win и наоборот?

до сих пор я не знал, что текстовые файлы MacOS и Win отличаются. Я не говорю о символах новой строки: CR для MacOS, LF для Unix и CR/LF для win.

По-видимому, есть больше различий, когда речь идет о специальных символах, таких как умляуты и т. д. У меня есть текстовый файл, созданный на Mac, если я открою его под Win с помощью Notepad ++, он скажет мне Macintosh ANSI, однако,

ö становится š

ä становится Š

ü становится Ÿ ...

с Notepad ++ я пробовал все виды кодировок, Windows 1252-1 или ISO-8859, UTF-8, ... Как я узнал, кажется, что в MacOS есть латинская кодировка ... которую Notepad ++, по-видимому, не понимает. Когда мне, в конце концов, каким-то образом удастся правильно открыть и отредактировать текстовые файлы Mac, я думаю, было бы лучше, если бы я сохранил их как UTF-8 для дальнейшего обмена между ОС-системами, надеюсь, без проблем.

Мой вопрос: как я могу правильно читать текстовые файлы Mac (закодированные) под Win?

(NB: отправка файлов кому-то с Mac и просьба сохранить их как UTF-8, я бы не рассматривал как практическое решение).


person theozh    schedule 03.02.2018    source источник
comment
Как создаются эти файлы? Сколько им лет? Mac OS Roman устарела с середины 2000-х годов.   -  person    schedule 04.02.2018
comment
OS X / macOS уже довольно давно не использует CR, я помню, он использует LF уже более 10 лет.   -  person user3439894    schedule 04.02.2018
comment
@duskwuff эти файлы создаются программным обеспечением для транскрипции аудио, которое (как вы говорите) не обновляется в отношении кодирования при экспорте в текст. Кто-то с Mac использовал BBEdit, чтобы определить, что он закодирован в MacOS Roman, и может сохранить его как UTF8. Однако для меня, вероятно, очень маловероятно, что какое-либо программное обеспечение Windows обнаружит старую, устаревшую кодировку Mac, не так ли?!   -  person theozh    schedule 04.02.2018
comment
MacOS Roman, согласно Википедии, имеет кодовую страницу 10000. Это поддерживается в среде .Net как кодировка текста для Macintosh, поэтому написать программу на C# или VB для ее преобразования не составит труда. Однако этому вопросу несколько не хватает программного угла, необходимого для StackOverflow.   -  person Nyerguds    schedule 06.02.2018
comment
Обратите внимание, что кодирование текста без побитовых требований или конкретных идентифицирующих байтов не может быть обнаружено, кроме как эвристическим. Если в кодировке любое значение байта от 0 до 255 отображается в символ (как в случае большинства чистых 8-битных кодировок), с точки зрения компьютера никакие данные для этой кодировки никогда не будут ошибочными. И я не знаю каких-либо текстовых редакторов, которые содержат словари нескольких десятков языков только для того, чтобы определить, какие допустимые слова могут быть там.   -  person Nyerguds    schedule 06.02.2018


Ответы (1)


@Nyerguds, ну, я надеялся, что в какой-то программе есть простой флажок или список кодов. Но я пока не смог найти... Однако, похоже, есть программное решение...

# MacOSRoman2UTF8.py
import codecs, sys

# enter filename without .txt
fname = sys.argv[1]

with codecs.open(fname+'.txt', 'r', encoding='macroman') as file_in:
    file_content = file_in.read()

with codecs.open(fname+'_utf8.txt', 'w', encoding='utf-8') as file_out:
    file_out.write(file_content)
person theozh    schedule 07.02.2018