【问题标题】:How to open MacOs text file correctly on Win?如何在 Win 上正确打开 MacOs 文本文件?
【发布时间】:2018-02-03 21:09:47
【问题描述】:

如何将Mac文本文件转换成Win文本文件,反之亦然?

到目前为止,我还不知道 MacOS 和 Win 文本文件是不同的。 我不是在谈论换行符:MacOS 的 CR,Unix 的 LF,win 的 CR/LF。

显然,在特殊字符(如元音变音等)方面存在更多差异。 我在 Mac 上创建了一个文本文件, 如果我用 Notepad++ 在 Win 下打开它,它会告诉我 Macintosh ANSI,但是,

ö变成š

ä 变成 Š

ü 变成Ÿ ...

使用 Notepad++,我尝试了各种编码,Windows 1252-1 或 ISO-8859,UTF-8,... 据我所知,似乎有一个 MacOS Roman 编码...... Notepad++ 显然不明白。 当我最终可能设法以某种方式正确打开和编辑 Mac 文本文件时,我想最好将它们保存为 UTF-8 以便在 OS 系统之间进一步交换而不会出现问题。

我的问题:如何在 Win 下正确读取 Mac(编码)文本文件?

(注意:将文件发送给使用 Mac 的人并要求他将它们保存为 UTF-8,我不认为这是一个实用的解决方案。

【问题讨论】:

  • 这些文件是如何创建的?他们几岁?自 2000 年代中期以来,Mac OS Roman 就已经过时了。
  • OS X/macOS 已经有一段时间没有使用 CR 了,我记得它使用 LF 已经有 10 多年了。
  • @duskwuff 这些文件是由音频转录软件创建的,在导出为文本时,该软件(如您所说)在编码方面不是“最新的”。使用 Mac 的人使用 BBEdit 来检测它是 MacOS Roman 编码的,并且可以将其保存为 UTF8。但是,对我来说,任何 Windows 软件都不太可能检测到旧的、过时的 Mac 编码,不是吗?!
  • MacOS Roman,根据维基百科,是 Code Page 10000。这个is supported on the .Net framework as text encoding "macintosh",所以写一个 C# 或 VB 程序来转换它应该是小菜一碟。不过,这个问题有点缺乏 StackOverflow 所需的编程角度。
  • 注意,没有按位要求或特定标识字节的文本编码实际上无法被检测到,除非是启发式的。如果在编码中,从 0 到 255 的任何字节值都映射到一个字符(就像大多数纯 8 位编码的情况一样),那么从计算机的角度来看,对于该编码来说,没有任何数据是“错误的”。而且我不知道任何文本编辑器包含几十种语言的字典,只是为了检测其中可能包含哪些有效的单词

标签: windows macos text character-encoding


【解决方案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)

【讨论】:

    猜你喜欢
    • 2018-02-09
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    相关资源
    最近更新 更多