I plan to propose this patch as an optimization of the IorUtil.EscapeNonAscii and IorUtil.UnescapeNonAscii that was creating a lot of intermediate strings. But doing so I discovered a bug. UnescapeNonAscii is using the IsPotentiallyEscapedCharacterRepresentation method that looks for an escaoe sequence "\uXXXX". To do so this method was using Char.IsDigit to check that XXXX was correct chars but IsDigit only returns true for decimal numbers and XXXX is an hexadecimal representation with 'A' to 'F' chars.
I have added some tests to check new implementation behavior.
There is also a major optimization of the StringConversions.Destringify method.