我正在开发一个服务,您可以通过获取参数向该服务发送不同的参数。
例如:
www.example.com?query=john&location=...
还可以将元音变音发送到此服务。
例如。
www.example.com?query=müller
我现在的问题是,我对如何将参数发送到我的服务没有影响,所以我决定对其进行大量测试并发现,如果您尝试通过我们的内部系统(运行于Sharepoint),如果您使用 Internet Explorer,事情就会开始变得奇怪。首先,这些参数看起来像这样,如上面的第二个示例:
www.example.com?query=m�ller
我已经可以检测到是否有人在使用 IE,但我仍然不确定如何解决这个问题。
我已经尝试使用urlencode()
(以及许多其他函数,但它们并没有真正改变结果),它返回m%3Fller
。在这种情况下,我想要的输出是 m%C3%BCller
是否可以通过我的服务解决此问题,或者问题出在 Sharepoint 中?我已经用一个简单的 HTML 表单复制了 szenario,并将所有必需的参数作为简单的文本字段,并且在那里工作得很好。
编辑:
我想要的输出是网址正确形式的元音变音 (ü => %C3%BC
)
最佳答案
将此代码放在 PHP 代码的第一行中:
header('Content-Type: text/html; charset=utf-8');
它将字符集更改为支持 Ü
的 utf-8。
您还可以使用 htmlentities
将 Ü
更改为 üuuml;
但如果您不想这样做,您也可以使用 urlencode 返回一个字符串,其中包含除 -_ 之外的所有非字母数字字符。已替换为百分号 (%) 后跟两个十六进制数字和编码为加号 (+) 的空格。
来源:
http://php.net/manual/en/function.htmlentities.php
http://php.net/manual/en/function.urlencode.php
关于php - 不同浏览器中 $_GET 参数的变音问题 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36622498/