【问题标题】:Base64 Encode with Custom Character Set使用自定义字符集进行 Base64 编码
【发布时间】:2013-01-18 00:54:39
【问题描述】:

我 [认为我] 需要在 C# 中使用自定义字符集进行 base 64 编码,但我不知道如何。

具体来说,我正在尝试在 Unity3D 项目中使用 Mixpanel HTTP 规范 - https://mixpanel.com/docs/api-documentation/http-specification-insert-data。 Mixpanel 说它具有 Base64 编码的自定义“风格”,实际上,当我使用允许我指定字符集 (http://www.motobit.com/util/base64-decoder-encoder.asp) 的 Web 服务对相同的 JSON 进行编码时,Mixpanel 报告成功。

(因此,我知道失败在于编码,而不是正在编码的数据)

【问题讨论】:

标签: c# base64 unity3d mixpanel


【解决方案1】:

页面提供的 URL 示例与 JSON 结构的示例不匹配。

这是一个工作示例:

var json = "{\"event\": \"game\", \"properties\": {\"ip\": \"123.123.123.123\", \"token\": \"e3bb4100330c35722740fb8c6f5abddc\", \"time\": 1245613885, \"action\": \"play\"}}";

var result = Convert.ToBase64String(Encoding.UTF8.GetBytes(json));

// result == "eyJldmVudCI6ICJnYW1lIiwgInByb3BlcnRpZXMiOiB7ImlwIjogIjEyMy4xMjMuMTIzLjEyMyIsICJ0b2tlbiI6ICJlM2JiNDEwMDMzMGMzNTcyMjc0MGZiOGM2ZjVhYmRkYyIsICJ0aW1lIjogMTI0NTYxMzg4NSwgImFjdGlvbiI6ICJwbGF5In19"

【讨论】:

    【解决方案2】:

    由于它是Base64编码,但用于Web,它的自定义集是基于此。看: C# Byte[] to Url Friendly String

    编辑:也许不是......似乎他们允许'+'和'/'。奇怪。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多