【问题标题】:String passed to web service inserts Unicode escape传递给 Web 服务的字符串插入 Unicode 转义
【发布时间】:2018-04-12 21:34:42
【问题描述】:

我有一个来自 LocationServices 框架的位置起点和终点。

地址行是一个 Swift String。但是,当它作为参数传递给服务时,会插入\U2013

示例: 如果字符串是"100198 Commerce St",就像 "100\U2013198 Commerce St"

\U2013 正在被插入,我不知道从哪里插入。

【问题讨论】:

  • 我觉得这里需要更多信息。你是否在你的项目中搜索过那个“\U2013”​​字符串,看看它是否在你的代码中?
  • 是的。我已经搜索了整个代码。但我想这是一些我无法弄清楚的 unicode 字符问题。
  • \U2013 是 Dash 的 Unicode 字符 -> charbase.com/2013-unicode-en-dash

标签: ios swift string unicode


【解决方案1】:

您正在尝试将 Unicode 字符串转换为 8 位字符串。试试这个函数来获取你需要的字符串。

func convertString(string: String) -> String {

    if let data = string.data(using: String.Encoding.ascii, allowLossyConversion: true) {
        return String.init(data: data, encoding: .ascii)!
    }

    return ""
}

【讨论】:

    【解决方案2】:

    地址行有一个 unicode 字符,当您将它传递给您的服务时,它使用非 unicode(可能是 UTF-8)编码进行编码。

    这是一个广泛的话题,我建议您一般研究一下字符串编码主题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      • 2016-05-29
      • 2023-03-26
      • 2012-04-10
      • 2017-05-18
      相关资源
      最近更新 更多