concordancejs / concordance

Compare, format, diff and serialize any JavaScript value

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Escape or replace invisible or ambiguous characters when formatting strings

novemberborn opened this issue · comments

Invisible characters such as zero-width joiner and non-breaking space, as well as ambiguous characters like other kinds of spaces, combining characters et cetera should be escaped when strings are formatted.

http://graphemica.com/blocks/control-pictures should be used where the behavior of the original character is preserved. This probably only applies to linebreaks.

If a simple escape sequence exist it should be used. Else characters should be escaped using the \u sequence.

When a string is formatted as a key it must not include linebreaks.

If a simple escape sequence exist it should be used.

What is a "simple escape sequence"?

What is a "simple escape sequence"?

\t would be a simple sequence, as opposed to \u0009.

ANSI codes should also be escaped.

@IssueHunt has funded $40.00 to this issue.


It'd be great if we could show byte differences when characters look the same, like in this example: avajs/ava#2451