NSString stringWithContentsOfFile, переставший работать, с какой, кажется, неправильный код ошибки

Попробуйте эту команду GNU sed,

$ sed -r '/000/ s/^(.*)$/#\1/g' file
#This is a 000 line.
#This is 000 yet ano000ther line.
This is still yet another line.

Объяснение:

  • /000/ Подстановка sed работает только на линии, которая включает 000 , Как только он находит соответствующую строку, он добавляет # символ перед ней.

И через awk, функция

$ awk '/000/{gsub (/^/,"#")}1' file
#This is a 000 line.
#This is 000 yet ano000ther line.
This is still yet another line
  • gsub используется для добавления # перед строками, которые содержат 000.
17
задан Alex Cio 25 July 2014 в 14:49
поделиться

4 ответа

Ошибка почти наверняка заключается в том, что ваш файл не в UTF-8, но вы правы, это действительно похоже на ошибку в отчете об ошибке.

Откройте файл eula вверх с BBEdit (или бесплатным TextWrangler) и посмотрите, какую кодировку он использует. Измените кодировку на UTF-8 и сохраните. Сравните два файла, чтобы увидеть, какие различия появились. Замените исходный файл новым (устраняя любые сбои).

Если это решит проблему, используйте Apple Bug Reporter , чтобы сообщить об ошибке в отчете об ошибке.

8
ответ дан 30 November 2019 в 13:13
поделиться

Наиболее вероятная причина того, что + stringWithContentsOfFile: encoding: error: не сработает в этом случае, заключается в том, что вы указали неправильную кодировку. Вы уверены, что ваш файл @ "eula" закодирован в UTF8?

Если вы не уверены в кодировке файла, вы всегда можете попробовать + stringWithContentsOfFile: usedEncoding: error: и посмотрите, работает ли он и какую кодировку предлагает.

3
ответ дан 30 November 2019 в 13:13
поделиться

Я только что потратил 45 минут на решение этой проблемы, только в моем случае решение было глупым , а проблема несколько иная.

  • У меня был файл под названием Playlist .txt в моем каталоге ресурсов. Он загружался нормально.
  • В какой-то момент файл был изменен изнутри XCode.
  • Файл перестал загружаться должным образом с той же ошибкой, что и выше. Однако он никогда не перемещался и его тип кодировки не менялся.
  • Я выполнил команду-I (Получить информацию) для файла в каталоге XCode, он сказал мне, что это UTF-8 (как и ожидалось).
  • Я пробовал читать файлы методом "usedEncoding", без кубиков. Та же ошибка, кодировка вернула значение null.
  • Наконец, я стер файл из XCode, снова перетащил его и выполнил очистку всего. Это устранило проблему.

Это не первый случай, когда XCode волшебным образом кэширует вещи (неправильно), и у меня много часов потрачено впустую. Если у вас возникла такая ошибка, которая не имеет смысла, попробуйте удалить и заменить файлы и очистить все цели.

10
ответ дан 30 November 2019 в 13:13
поделиться

Не знаю, ваша ли проблема в этом, но у меня была похожая вещь (stringWithContentsOfFile, без JSON), и проблема заключалась в том, что файл имел концы строк CRLF (windows) и Как бы то ни было, западное кодирование. Я использовал SubEthaEdit для преобразования в LF и UTF-8, и все работает нормально.

0
ответ дан 30 November 2019 в 13:13
поделиться