在加密中丢失特殊的 unicode 字符 (C#)

Losing special unicode characters in encryption (C#)

我在 encryption/decryption 期间遇到丢失 µ 字符的问题。我使用 Encoding.UTF8.GetBytes 将字符串转换为字节,然后使用 GZipStream.Write() 将其写入流,然后从那里写入 Blob。我注意到 µ 被转换为 2 个字节,而普通字符只是一个字节(我知道 µ 是一个 2 字节的字符)。

流是使用 GZipStream 解密的,我使用 CopyTo(FileStream) 将字节获取到新文件。但是,在新的 .rtf 中,µ 显示为 �。有任何想法吗?我认为双字节字符有问题,但我不太确定。

看起来 Matthew Watson 是正确的,因为 rtf 不支持 UTF-8。但是,我发现了这个潜在的解决方案,我认为可以对其进行修改以满足我的需要。

https://spin.atomicobject.com/2010/08/25/rendering-utf8-characters-in-rich-text-format-with-php/