【发布时间】: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