【发布时间】:2011-01-19 20:33:46
【问题描述】:
我将 MS SQL 数据库文件从 FTP 位置复制到 Mac OS,然后从 MAC OS 复制到我的 Windows Server VM。但是,数据库的还原过程无法进行。当我直接从 Windows Server VM FTP 时,还原过程确实有效。这里发生了什么?这可能与大端小端有关吗?
【问题讨论】:
标签: windows macos ftp endianness
我将 MS SQL 数据库文件从 FTP 位置复制到 Mac OS,然后从 MAC OS 复制到我的 Windows Server VM。但是,数据库的还原过程无法进行。当我直接从 Windows Server VM FTP 时,还原过程确实有效。这里发生了什么?这可能与大端小端有关吗?
【问题讨论】:
标签: windows macos ftp endianness
行尾问题:操作系统之间文件传输的古老瘟疫,尤其是在 OSX 和 Windows 之间。
文件系统使用“行尾”字符来指定新行,不同的操作系统实现此字符的方式不同。 Mac OSX 使用 LF(旧语言中的“换行”),Windows 使用 CRLF(“回车换行”,就像打字机的圆柱形托架从打字机的一侧返回到另一侧一样。打字机是物理的用于将个人墨水字形印在纸上的设备 - more here)。
因此,当您使用 ASCII 模式将文件 FTP 到 OSX 机器时,FTP 服务器在传输过程中将行尾更改为 FTP 定义的通用格式,然后 OSX 在保存文件时将它们更改为“LF”,并且您的Windows 机器最终搞砸了。
尝试使用 FTP 的图像(又名二进制)模式,在 /Applications/Utilities/Terminal.app/More on using OSX's built-in "ftp" here 中使用 OSX 的“ftp”命令可用。
【讨论】: