@j12i Right, so the special characters are colons, tags, spaces and newlines—the tags can't contain any of them, urls can't contain spaces and newlines, and descriptions can't contain newlines. Percent encoding is used to escape any of those limitiations. ← I'll go paste that into the post
Records are separated by newlines and fields are spearated by one single space. The first field that contains at least one slash ior colon is the URL. The (zero or more) fields before the URL are individual tags. The (zero or more) fields after the URL are joined together (spaces reinserted) and is the title/description, which may include additional URLs.
Tags cannot contain colons, slashes, newlines or spaces.
URLs can't contain newlines or spaces.
The description can't contain newlines.
Tags, URLs, or descriptions (after joining!) that cointain any of the sequences %20, %25, %0A, %3A or %2F are to be considered percent encoded. Fields that don't contain specifically those char triplets are not percent encoded so you can write a % sign normally. But if a field has at least one of these triplets, then it's to be interpreted as if it was completely percent encoded i.e. normal percent signs are written as %25 etc. Decoding these percent encoded parts of the record (as opposed to preserving them and presenting them as is) is optional.