Encoding Safari中的UTF-8获取URL编码问题
我们有一个表单(method=“GET”)提交到一个PHP页面,该页面执行搜索。我们的一位越南用户在Safari中发现了一个问题,URL中的值(如Safari在表单提交时所述)与我们在Chrome等人中看到的编码不同 所讨论的表单元素如下所示,非常简单: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&
<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" />