首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于“Refer-To”标头

关于“Refer-To”标头
EN

Stack Overflow用户
提问于 2016-01-25 14:53:45
回答 2查看 60关注 0票数 0

我有一个Refer-To头:

代码语言:javascript
复制
Refer-To: <additional.session.xfer@sccas.home1.net?Target-Dialog=ksdjfhwrklf%3Bremote-tag=676723565%3Blocal-tag=45418454&Require=tdialog&From=tel:+1-237-555-1111&To=tel:+1-987-654-3210&Content-Type=application%2Fsdp&body=v%3D0%0D%0Ao%3D-%202987933623%202987933623%20IN%20IP6%205555::ggg:fff:aaa:bbb%0D%0As%3D-%0D%0Ac%3DIN%20IP6%205555::ggg:fff:aaa:bbb%0D%0At%3D0%200%0D%0Aaudio%203456%20RTP%2FAVP%2097%2096%0D%0Ab%3DAS:25.4%0D%0Aa%3Drtpmap:97%20AMR%0D%0Aa%3Dfmtp:97%20mode-set%3D0%2C2%2C5%2C7%3B%20mode-change-period%3D2%0D%0Aa%3Dmaxptime:20%0D%0A>

在这个头文件中,有很多%3B%0D等等。

我想知道如何将它们转换成人类可读的?

EN

回答 2

Stack Overflow用户

发布于 2016-01-25 17:11:18

这称为URL编码。您要查找的内容在Erlang中以http_uri:decode/1形式存在,在Javascript中以decodeURIComponent形式存在。

票数 2
EN

Stack Overflow用户

发布于 2016-01-25 17:03:13

下面是一个C方法来转换所有的%XX:

每次出现%XX表示ascii格式字符的十六进制值。例如,"%3D“是"=”

代码语言:javascript
复制
void
__osip_uri_unescape (char *string)
{
  size_t alloc = strlen (string) + 1;
  unsigned char in;
  int index = 0;
  unsigned int hex;
  char *ptr;

  ptr = string;
  while (--alloc > 0) {
    in = *ptr;
    if ('%' == in) {
      /* encoded part */
      if (alloc > 2 && sscanf (ptr + 1, "%02X", &hex) == 1) {
        in = (unsigned char) hex;
        if (*(ptr + 2) && ((*(ptr + 2) >= '0' && *(ptr + 2) <= '9') || (*(ptr + 2) >= 'a' && *(ptr + 2) <= 'f') || (*(ptr + 2) >= 'A' && *(ptr + 2) <= 'F'))) {
          alloc -= 2;
          ptr += 2;
        }
        else {
          alloc -= 1;
          ptr += 1;
        }
      }
      else {
        break;
      }
    }

    string[index++] = in;
    ptr++;
  }
  string[index] = 0;            /* terminate it */
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34986676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档