我正在开发服务,您可以通过get参数向此服务发送不同的参数。
例如:
www.example.com?query=john&location = ...
也可以将变音符号发送到此服务。
实施例
www.example.com?query=müller
我现在的问题是,我对参数如何发送到我的服务没有影响,所以我决定对它进行大量测试并发现,如果你试图通过我们的内部系统调用它(与之一起运行) Sharepoint)如果你使用Internet Explorer,事情开始变得怪异。首先,这些参数看起来像这样,上面的第二个例子:
www.example.com?query=mller
我已经可以检测到,如果有人使用IE浏览器,但我仍然不确定,我该如何解决这个问题。
我已经尝试使用urlencode()
(和许多其他函数,但它们并没有真正改变结果),它返回m%3Fller
。在这种情况下,我想要的输出是m%C3%BCller
以某种方式可以用我的服务来解决这个问题,还是Sharepoint中的问题?我已经用简单的HTML表单复制了szenario,其中包含所有必需的参数作为简单的文本字段,并且在那里工作正常。
编辑:
我想要的输出是url的正确形式的变音符号(ü => %C3%BC
)
答案 0 :(得分:2)
将此代码放在PHP代码的第一行:
header('Content-Type: text/html; charset=utf-8');
它将charset更改为支持Ü
的utf-8。
您还可以使用htmlentities
将Ü
更改为üuuml;
,但如果您不想要,也可以使用urlencode
返回一个字符串,其中除-_之外的所有非字母数字字符。已被替换为百分号(%)后跟两个十六进制数字和空格编码为加号(+)。
来源:
http://php.net/manual/en/function.htmlentities.php
http://php.net/manual/en/function.urlencode.php
答案 1 :(得分:0)
这取决于您的页面编码,我建议如果可以将其更改为UTF-8,那么示例如下:
<?php
$txt = "müller";
$output = urlencode($txt);
var_dump($output);
会给你正确的价值:
string(11) "m%C3%BCller"
答案 2 :(得分:0)
它通过表格吗? 如果是这样,对我来说,这可以解决问题,只需将accept-charset =“ UTF-8”添加到表单中