JavaScript strings are encoded as UTF-16. When a Unicode character outside of the BMP is part of a string, it is encoded as a surrogate pair. For instance, '๐จ' is encoded as '\uD83C\uDFA8', but a for-of loop will treat that as a single character with length 2. In getByteToCharMap, this was not handled, resulting in an incorrect value of charIndex and links being placed at the wrong location in messages.
an appview-less Bluesky client using Constellation and PDS Queries
reddwarf.app
frontend
spa
bluesky
reddwarf
microcosm
Fix links after emoji #2
merged
opened by
expand 1 commit
hide 1 commit
Fix links after emoji
JavaScript strings are encoded as UTF-16. When a Unicode character
outside of the BMP is part of a string, it is encoded as a surrogate
pair. For instance, '๐จ' is encoded as '\uD83C\uDFA8', but a for-of loop
will treat that as a single character with length 2. In
getByteToCharMap, this was not handled, resulting in an incorrect value
of charIndex and links being placed at the wrong location in messages.
very cool! thanks