php - 不同浏览器中 $_GET 参数的变音问题 (PHP)

标签 php url encoding getparameter

我正在开发一个服务,您可以通过获取参数向该服务发送不同的参数。

例如:

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/

相关文章:

php - MySQL UTF-8 字符插入问题

php - 使用 html 链接调用 wordpress previous_post_link 函数

.net - HTTP 400 : detected invalid characters in the URL. IIS 解码 URL 过早?这里发生了什么?

javascript - 如何在javascript中不解码就获取页面url?

java - 仅打印绝对 URL

Javascript/jQuery 字符串操作?

ios - 无法在 iOS 中将\\u00e2\\u0080\\u0099 解码为 ’

PHP 和 MySQL fckeditor 集成?

php - 在 Laravel 8 中找不到 404

php - 服务器没有给出 json 输出