php - Apache header 中的欧元字符

标签 php iphone mysql ios codeigniter

我们有基于 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/

相关文章:

php - php中的sql更新错误

iphone - 游戏中心问题

java - 通过 web 控制台向 wildfly 添加数据源

javascript - Google Maps API - 如果找不到一个地址,请尝试另一个地址

php - 如何在 Ubuntu 14.04.2 LTS 上使用 .htaccess? php

iphone - 我的应用程序被 Apple 拒绝,因为它在 iPhone 5 上崩溃

iphone - 恢复到非 iPad 应用程序

mysql - 如果属性是 bool 数据类型,如何在 mysql 查询中使用 if else 条件

MySQL : Why is comparing primary key to a randomly generated number not using the index?

php - 数组匹配计数比预期少 1