解析^ M个字符

时间:2011-11-15 16:37:27

标签: macos cocoa

我有一个Cocoa应用程序可以解析标准文本文件中的文本。当使用nano和pico等终端程序编辑文件时,我有时会注意到^M个字符出现。我无法在更高版本的Mac OS X上重现这一点,但在10.5版本中似乎比比皆是。

奇怪的是,当我从10.5系统中获取一个具有^M字符的文件时,它在10.6+中神奇地消失了;我假设这是因为Mac OS开始将linux风格的换行转换为Mac风格(??)。因此,在调试时修复问题有点复杂,因为我只在10.7上安装了XCode。

我需要一种方法来查找^M字符,并在解析文件时将其替换为更标准的字符(例如\n)。我需要寻找什么类型的角色?它似乎不是一个\ n同样,没有\ r \ n的组合似乎也可以做到这一点。 ^M仍然悬而未决。

4 个答案:

答案 0 :(得分:1)

这在XCode中很容易管理。

只需选择要更改行结尾的文件,然后打开实用工具面板,即可更改行结尾。

像这样:

enter image description here

答案 1 :(得分:1)

一般来说,我不是MacOS用户,所以我只是猜测它会起作用。在典型的类Unix系统上,您可以使用Ctrl-V将输入的下一个控制字符显示为可见字符序列。因此,例如,您可以通过先输入Ctrl-V然后按Return键来获得想要显示的^ M.请注意,在这种情况下,屏幕上显示的^ M与您首次输入^字符然后输入M字符时出现的^ M不同(从软件的角度来看)。通过这种方式,您可以执行诸如使用正则表达式将^ M控制字符表示替换为\ n的实例。

正如Jakrabbit建议的那样,您也可以使用dos2unix过滤文件 - 假设它在您的Mac上可用。

答案 2 :(得分:1)

“^ M”是ASCII换行符的表示。这是ASCII(和UTF-8)中的字符代码13,因此在解析文件时,查找值为13的字符并忽略它们。

答案 3 :(得分:0)

^ M是DOS / Windows中的标准回车符。

我只是使用dos2unix程序来摆脱它们。