Encoding Safari中的UTF-8获取URL编码问题

Encoding Safari中的UTF-8获取URL编码问题,encoding,utf-8,safari,Encoding,Utf 8,Safari,我们有一个表单(method=“GET”)提交到一个PHP页面,该页面执行搜索。我们的一位越南用户在Safari中发现了一个问题,URL中的值(如Safari在表单提交时所述)与我们在Chrome等人中看到的编码不同 所讨论的表单元素如下所示,非常简单: <select id="province" name="province" class="inputbox" size="1"><option value="">Vui lòng chọn ...</option&

我们有一个表单(method=“GET”)提交到一个PHP页面,该页面执行搜索。我们的一位越南用户在Safari中发现了一个问题,URL中的值(如Safari在表单提交时所述)与我们在Chrome等人中看到的编码不同

所讨论的表单元素如下所示,非常简单:

<select id="province" name="province" class="inputbox" size="1"><option value="">Vui lòng chọn ...</option><option value="Thành phố Cần Thơ" class="">Thành phố Cần Thơ</option></select>
在Chrome中,执行与我看到的URL完全相同的搜索

index.php?province=Tha%CC%80nh+ph%C3%B4%CC%81+C%C3%A2%CC%80n+Th%C6%A1
注意它有点长。HTML表示也略有不同。请参见左侧的Safari和右侧的Chrome:

此页面的响应标题为“内容类型:text/html;charset=utf-8” HTML字符集是

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

当服务器从Safari获取内容时,query子句如下所示:

(我不得不在这里使用截图,因为复制查询消除了字符的视觉差异)

当服务器收到来自Chrome的请求时,如下所示:

替换(
,'','')=ThánhphốCầnơ

Chrome返回正确的结果,Safari不返回结果

将URL编码的参数从Chrome复制并粘贴到Safari会产生正确的结果。(这些请求之间没有视觉上的区别),这可能意味着Safari在URL中输入的值不正确,但当正确的值存在时,请求就可以了

我不确定以下哪项可能是问题: 1) 值没有以正确的编码/格式进入HTML 2) 在Safari的表单GET请求过程中,值被破坏


有什么想法吗?谢谢

您可以使用rawurlencode(“Thánh ph”)设置此选项的值(理想情况下是所有其他选择选项)ố Cần Thơ“)不是原始字符串

您可以使用rawurlencode(“Thánh ph”)设置此选项的值(理想情况下是所有其他选择选项)ố Cần Thơ“)不是原始字符串

<meta http-equiv="content-type" content="text/html; charset=utf-8" />