我正在尝试此代码(在我的本地Web服务器上)
<?php
echo 'the word is / ?????? ? '.$_GET['word'];
?>
Run Code Online (Sandbox Code Playgroud)
但是当我输入时,我得到了损坏的结果?word =проба
the word is / ?????? ? ????
Run Code Online (Sandbox Code Playgroud)
该文档保存为"UTF-8无BOM",标题也是UTF-8.我尝试过urlencode()和urldecode(),但效果相同. 在Web服务器上传时,工作正常......
如果您尝试发送 HTTPContent-type标头来指示浏览器您的页面正在生成哪种编码/字符集,该怎么办?
例如,这样的事情可能会有所帮助:
\n\nheader('Content-type: text/html; charset=UTF-8');\necho 'the word is / \xd0\xb4\xd1\x83\xd0\xbc\xd0\xb0\xd1\x82\xd0\xb0 \xd0\xb5 '.$_GET['word'];\nRun Code Online (Sandbox Code Playgroud)\n\n当然,这是如果您正在生成 HTML 的话——您可能就是这样。
\n\n
\n考虑到服务器级别有一个配置设置定义默认发送哪种编码,也许您服务器上的默认编码是可以的,而本地服务器上的默认编码则不行。
自己发送这样的标头可以解决问题:它将确保编码始终设置正确。
\n