这是什么样的太空人物?

这是什么样的太空人物?

这很奇怪,使用 Windows 的朋友发送的 .txt 文档,我相信我发现了一个奇怪的空格字符。

如果我运行,cat file该角色将显示为

另外,我正在运行if [[ " " = " " ]] ; then echo yes ; fi,但它没有给我成功代码。(该角色在 Stack Exchange 上一旦失去其属性,因此运行它会给你一个成功代码)

编辑 该文件采用 iso-8859-1 编码,而不是 utf-8 编码。

使用 Serg 的解决方案,我能够将其转换为 utf-8

答案1

由于文件编码已被报告为iso-8859-1,您可以使用iconv -f old-encoding -t new-encoding inputfile > outputfile

更多信息:http://www.shellhacks.com/en/HowTo-Determine-and-Change-File-Character-Encoding

答案2

您可以使用dos2unix。来自man dos2unix

dos2unix - DOS/Mac to Unix and vice versa text file format converter

例如你可以这样做:

dos2unix -n file.in file.out

现在file.out将采用 UNIX 格式。dos2unix可以将 Windows 行尾和编码转换为 UNIX 格式,以便您可以在两种情况下使用它。如果未安装,您可以通过以下方式安装:

sudo apt-get install dos2unix

答案3

我的猜测是行尾。

Windows 使用\r\n而 *UNIX 使用\n

您看到的可能只是\r字符,因为它们对于 *UNIX 来说没有任何意义。

在 Windows 上打开带有结尾的文本文件没有问题\n,因为 Windows 会自动将其转换为\r\n(仅在文本模式下),而 *UNIX 没有这样的功能。

答案4

您看到的字符听起来像不间断空格。它是 iso-8859-1 和 unicode 中的字符编号 160。在某些键盘布局中,可以使用 输入altspace。如果您使用 查看文件,cat -e它将显示如下M-示例:

$ printf '\xa0\n' | cat -e
M- $

相关内容