【问题标题】:Losing special unicode characters in encryption (C#)在加密中丢失特殊的 unicode 字符(C#)
【发布时间】:2017-10-20 14:34:36
【问题描述】:

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

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

【问题讨论】:

  • 嗯,µ 是一个两字节字符。看起来您在途中的某个地方丢失了编码。
  • en.wikipedia.org/wiki/Rich_Text_Format#Character_encoding RTF 文件不使用 UTF8 编码 - 我怀疑这不是问题!
  • 你能发布一个包含你描述的所有功能的代码sn-p吗?
  • 我不能真正分享代码,但 RTF 问题听起来很有希望,我不敢相信我没有调查过!现在来看看如何维护 .rtf 中的编码。谢谢!

标签: c# unicode gzipstream


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多