2017-01-26 10 views
0

Я извлекаю и разбираю JSON для своего приложения после создания сетевого запроса. В тексте, который я разбираю, часто возникает случайный код, который повторяет и вызывает разрывы строк в моих ярлыках. Например:Странные символы из JSON, вызывающие разрывы строк в моем UILabel

"...it turns\u{0C}aggressive..." 

Мне было интересно, что значение этого, и как удалить это из всех текстов я получаю, чтобы избежать произвольных разрывов строк в моем тексте. Я кодирую это в Swift и читаю документацию по классу String, но я действительно не знаю, как определить мою проблему, что затрудняет поиск решения. Не уверен, что означает \ u {0C}.

ответ

0

Внутри Swift строкового литерала, \u{n} является последовательность для код точки Unicode U+n (n 1-8 шестнадцатеричный номер).

Таким образом, \u{0C} является U+000C который является символом "form feed". Это приводит к разрыву нежелательной строки.

Вы можете просто заменить его с обычным символом пробела:

let text = "...it turns\u{0C}aggressive..." 
let modified = text.replacingOccurrences(of: "\u{0C}", with: " ") 
print(modified) // ...it turns aggressive... 

В качестве альтернативы, заменить все «пробелы» (перевод строки, возврат каретки, форма подачи, табуляторами) с регулярным символом пробела:

let modified = text.replacingOccurrences(of: "\\s", with: " ", options: .regularExpression) 
+0

Можете ли вы подробнее остановиться на втором варианте? Что такое \\ s и как таргетинг удаляет все пробелы? –

+0

@EmanH: '\ s' является * регулярным шаблоном выражения * и соответствует всем пробельным символам. –

 Смежные вопросы

  • Нет связанных вопросов^_^