需要字符串解码帮助

Posted

技术标签:

【中文标题】需要字符串解码帮助【英文标题】:String decoding help needed 【发布时间】:2018-05-27 19:37:16 【问题描述】:

我正在从 API 获得这种类型的编码字符串作为响应。我不知道使用了什么编码以及如何解码。需要跨 iosandroid 对其进行编码。

  1.5%23%23cups%23%23BISQUICK*+mix%23%23%0A0.333%23%23cup%23%23hot+water%23%23%0A3%23%23pieces%23%23eggs%23%23%0A1%23%23cup%23%23sour+cream%23%23%0A1%23%23cup%23%23Cheddar+cheese%23%23shredded%0A0.5%23%23cup%23%23green+onions%23%23sliced+%28about+4%29%0A0.5%23%23tsp%23%23onion+salt%23%23%0A1%23%23cup%23%23cooked+ham%23%23finely+chopped"

【问题讨论】:

这只是url编码的,%23实际上是# 转义百分比(参见***.com/questions/32974795/url-decode-in-ios/39490511)? URL decode in iOS的可能重复 【参考方案1】:

这是一个经过百分比编码的 URL 字符串(并非所有字符都可以在 url 中发送,因此需要编码)。

使用此方法解码:

if let decodedString = yourString.removingPercentEncoding 
    // Do something with decodedString here

This answer 展示了如何将此编码和解码作为String 类型的扩展添加。

【讨论】:

这是错误的 removingPercentEncoding 返回一个可选项。声明:var removingPercentEncoding: String? get @LeoDabus 谢谢。我已经更新了使变量可选的答案。 Swift 是一种类型推断语言。只是不要显式设置类型并使用if letguard 来解开值。 if let decodedString = yourString.removingPercentEncoding @LeoDabus 再次感谢。为了简洁起见,我省略了可选绑定,但你说得对,最好在上下文中展示如何使用答案。 @Romit - 这个答案可以在 iOS 上的 Swift 中使用,但我知道你也问过关于 Android 的问题。恐怕我对 Android 或 Java 没有经验,但可能有一个等效的函数来编码和解码这样的字符串。

以上是关于需要字符串解码帮助的主要内容,如果未能解决你的问题,请参考以下文章

如何解码视图状态

PHP html 解码帮助 - 转换:'quote' is <b>bold</b>

使用 JSONDecoder Swift 解码具有整数值的字符串键 [关闭]

编码解码

如何对 RFC 3986 字符串进行转义

在 Rust 中解码带引号的可打印电子邮件字符串(如 =?UTF-8?Q??=D1=81_=D0)