带有西里尔文本的$ _GET编码问题

T10*_*000 5 php encoding

我正在尝试此代码(在我的本地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服务器上传时,工作正常......

Pas*_*TIN 3

如果您尝试发送 HTTPContent-type标头来指示浏览器您的页面正在生成哪种编码/字符集,该怎么办?

\n\n

例如,这样的事情可能会有所帮助:

\n\n
header('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'];\n
Run Code Online (Sandbox Code Playgroud)\n\n

当然,这是如果您正在生成 HTML 的话——您可能就是这样。

\n\n


\n考虑到服务器级别有一个配置设置定义默认发送哪种编码,也许您服务器上的默认编码是可以的,而本地服务器上的默认编码则不行。

\n\n

自己发送这样的标头可以解决问题:它将确保编码始终设置正确。

\n