A character outside the Basic Multilingual Plane is written as two consecutive \u control words holding the halves of a surrogate pair, as in \uc1\u-10187 ?\u-9157 ?. Each half was converted on its own, and since Text cannot hold an unpaired surrogate it became U+FFFD, so 𝐻 came out as two replacement characters. Hold a high surrogate back until we know whether the low surrogate completing it follows, and combine the two. An unpaired surrogate denotes no character, so it is now dropped rather than replaced; any text other than the next \u ends the wait, so halves separated by text are not combined. Closes #11920.
8 lines
138 B
Plaintext
8 lines
138 B
Plaintext
Pandoc
|
|
Meta { unMeta = fromList [] }
|
|
[ Para
|
|
[ Str
|
|
"\8220hi\8221\8216hi\8217\61623\945\228\119867unpaired"
|
|
]
|
|
]
|