doushi7394 2012-05-02 23:27
浏览 75
已采纳

MSExchange URL编码

I am writing a PHP service to query an Exchange server via WebDAV. This service has been live for roughly a month with no issues, but experienced a hiccup today when an email with the following subject line arrived in the mailbox:

FW: Daily Approval Report: Vendor/Master 007297

The message is stored in the file "FW: Daily Approval Report: Vendor/Master 007297.EML" and is referenced through a url as:

FW:%20Daily%20Approval%20Report:%20Vendor_xF8FF_Master%20007297.EML

I had been using the PHP rawurlencode() function to translate the message filename to its URL counterpart, but in this case rawurlencode() returns a mismatched string:

FW%3A%20Daily%20Approval%20Report%3A%20Vendor%2FMaster%20007297.EML

I'm no guru with Exchange and do not know how to match it's encoding. Can someone tell me if there is a mapping I can use to write my own function? I assume simply replacing / with \_xF8FF\_ and skipping colons will lead to chasing down this error again a month from now, but Google hasn't been helpful producing a full list of exceptions.

  • 写回答

2条回答 默认 最新

  • duanchun6148 2012-07-28 16:59
    关注

    I've googled around a bit, but I haven't been able to find the complete reference of characters that you're looking for.
    The only thing that I've discovered is that the following five characters have a special encoding in Exchange:

    • Forward slash '/' is encoded as _xF8FF_
    • Question mark '?' is encoded as _x003F_
    • Backslash '\' is encoded as _xF8FE_
    • Tilde '~' is encoded as _x007E_
    • Euro symbol '€' is encoded as _x0080_

    Maybe it could help to have a look at the source of the Ximian Connector for Microsoft Exchange, and more precisely at the "e2k_uri_append_encoded" function, at line 280.
    The Ximian Connector enables Ximian Evolution to function as a Microsoft Exchange client by communicating with Microsoft Exchange servers through the WebDAV protocol, so it has to deal exactly with the same problem you have encountered.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。