我们有基于 codeigniter 的 iphone 应用程序可以使用的 Web 服务,参数通过 header 传递。一切工作正常,直到参数值中出现欧元(€)符号。每当从 iPhone 发送的参数带有欧元符号时,它就会被截断。 有什么想法我做错了或者我们应该如何做?
最佳答案
根据 RFC(RFC 2616,如果您感兴趣的话),您不能在 HTTP header 中发送非 ASCII 字符。据我所知,当你这样做时会发生什么是未定义的 - 看来你的服务器会丢弃 header 的其余部分。
在发送 header 之前,您需要对 header 的值进行 URL 编码(用 %XX 字符串替换特殊字符,正如您在浏览器地址栏中经常看到的那样)。
要在 iPhone 上正确执行此操作,请参阅此 post 。在 PHP 端,urldecode()
将允许您检索原始 header 。
关于php - Apache header 中的欧元字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12894428/