Разобрать символы ^ M - PullRequest
       1

Разобрать символы ^ M

1 голос
/ 15 ноября 2011

У меня есть приложение Какао, которое анализирует текст из стандартного текстового файла.Когда для редактирования файла используются терминальные программы, такие как nano и pico, я иногда замечаю, что появляется символ ^M.Я не могу воспроизвести это в более поздних версиях Mac OS X, но, похоже, в изобилии в версии 10.5.

Как ни странно, когда я беру файл с символом ^M в системе 10.5, он волшебным образом исчезает в 10.6+;Я предполагаю, что это потому, что Mac OS начала преобразовывать перевод строки в стиле linux в стиль Mac (??).Следовательно, это несколько усложнило решение проблемы во время отладки, поскольку у меня XCode установлен только на 10.7.

Мне нужен способ найти символ ^M и заменить его чем-то более стандартным (как \n), пока я анализирую файл.Какой тип персонажа мне нужно искать?Похоже, что это не \ n, и, похоже, ни одна комбинация \ r \ n не поможет.^M все еще висит вокруг.

Ответы [ 4 ]

1 голос
/ 15 ноября 2011

«^ M» представляет собой символ перевода строки ASCII.Это код символа 13 в ASCII (и UTF-8), поэтому при анализе файла ищите символы со значением 13 и просто игнорируйте их.

1 голос
/ 15 ноября 2011

Это легко управлять в XCode.

Просто выберите файл, для которого вы хотите изменить окончания строк, а затем откройте панель утилит, и вы сможете изменить окончания строк.

Вот так:

enter image description here

1 голос
/ 15 ноября 2011

Я вообще не пользователь MacOS, поэтому думаю, что это сработает.В типичных Unix-подобных системах вы можете использовать Ctrl-V, чтобы следующий введенный вами управляющий символ отображался как видимая последовательность символов.Так, например, вы можете получить ^ M, который хотите отобразить, сначала введя Ctrl-V, а затем нажав клавишу Return.Обратите внимание, что ^ M, который появляется на вашем экране в этом случае, не совпадает (с точки зрения вашего программного обеспечения) с ^ M, который появляется, когда вы сначала вводите символ ^, а затем символ M.Таким образом, вы можете использовать такие вещи, как использование регулярных выражений для замены этого представления управляющего символа ^ M вместо экземпляров \ n.

Вы также можете, как предлагает Jakrabbit, использовать dos2unix для фильтрации файла - при условиион доступен на вашем Mac.

0 голосов
/ 15 ноября 2011

^ M - это стандартный символ возврата каретки в DOS / Windows.

Я бы просто использовал программу dos2unix, чтобы избавиться от них всех.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...