【问题标题】:How to encode bytes as a printable unicode string (like base64 for ascii)如何将字节编码为可打印的 unicode 字符串(如 ascii 的 base64)
【发布时间】:2015-06-08 13:14:21
【问题描述】:

我正在寻找将任意字节数据编码为 un​​icode 字符串,该字符串仅包含可打印字符,很像 ascii 的 base64。

我很乐意为任何 unicode 版本找到这样的编码。

【问题讨论】:

  • “一个 utf8 字符串”到底是什么意思?你有什么理由不想使用 base64?
  • @JonSkeet 我必须通过只接受可打印 utf8 字符的通道发送字节。 Base64 当然可以,但我认为我可以使用 utf8 提供的除 ascii 字符之外的所有其他可打印字符来使用更少的字符。
  • 你可以使用更少的字符,是的 - 但你会发现在其他平台上对它的支持更少(我们不知道你正在使用哪些平台),你可能会发现稍后你需要无论如何将其转换为 ASCII 格式,以便于传输。如果您可以保证这是您唯一需要编码形式的地方,并且您确切知道两端使用的 Unicode 版本,那可能是合理的......
  • 确实需要在某些时候将这些字符表示为字节...您可以将 3 个字节压缩为 2 个字符,但如果两个字符各占两个字节以 Unicode 编码进行编码,那么您将 4 个字节用于 3... 这是否比 base64 更有效是值得怀疑的。
  • 为什么字符数比字节数更相关?您是否对要发布到 Twitter 的二进制数据进行编码?

标签: unicode encoding utf-8 character-encoding


【解决方案1】:

UniBinary library 似乎符合我的要求:

UniBinary 是一种编码算法,可将任意数据打包成 可打印的 Unicode 字符。

它可用于通过 Twitter 等媒体发送数据 允许二进制数据,但允许 Unicode 字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 2014-08-23
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多