【发布时间】:2015-06-08 13:14:21
【问题描述】:
我正在寻找将任意字节数据编码为 unicode 字符串,该字符串仅包含可打印字符,很像 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