Wednesday, April 28, 2010

Век живи - 2

Из той же серии, что и предыдущее. Засады в разработке.

Есть мэшап Metromap. Внутри, разбирая RSS фид, создает JavaScript строки. Типа:

var s = "строка, взятая из RSS";

Естественно, если создается такая строка, то необходимо из текста убрать переводы строк (\n \r). Нет проблем, хотя бы и функция replaceAll() из java.lang.String делает всю работу.
Но, после нескольких лет работы на одном из фидов (конкретно - вот здесь) и обнаружилась засада. Внутри исходных данных (текста) стали добавлять так называемый Unicode line break. HTML его игнорирует, если фид просматривать, то никаких лишних переводов нет. Но в тексте то он есть! И в указанном выше JavaScript фрагменте будет восприниматься именно как символ новой строки. Текст просто не будет компилироваться в итоге.

Для тех, кто еще не сталкивался с таким. Коды для этого Unicode linebreak: E2 80 A8

No comments: