字符编码问题和PHP-这是什么编码?

字符编码问题和PHP-这是什么编码?,php,mysql,encoding,utf-8,character,Php,Mysql,Encoding,Utf 8,Character,我的计算机上有一个文件,我想用PHP将它复制到MySQL表中。当我打开文件时,内容看起来很好,就像普通文本一样——但是,当我尝试使用PHP读取文件或插入MySQL表时,我会得到各种各样的时髦字符。我想这可能是utf-8的问题,所以我试着设置标题 header('Content-type: text/html; charset=utf-8'); 然后回显由文件_get_contents()检索到的内容,但这并没有任何区别——输出仍然很糟糕。然后我认为这可能是cp1252的问题,所以我尝试使用ht

我的计算机上有一个文件,我想用PHP将它复制到MySQL表中。当我打开文件时,内容看起来很好,就像普通文本一样——但是,当我尝试使用PHP读取文件或插入MySQL表时,我会得到各种各样的时髦字符。我想这可能是utf-8的问题,所以我试着设置标题

header('Content-type: text/html; charset=utf-8');
然后回显由文件_get_contents()检索到的内容,但这并没有任何区别——输出仍然很糟糕。然后我认为这可能是cp1252的问题,所以我尝试使用htmlentities(),但也没有帮助:

htmlentities($str, ENT_QUOTES, 'cp1252')
然后我将该文件上载到一个网站()。在服务器上,当我对文件进行“cat”时,它看起来再次正常,但在Firefox中,当我打开它时,我会看到一些时髦的字符。下面是一个截图,它在我看来是什么样子:

奇怪的是,我把同一个文件复制到了同一台服务器上另一个网站的文件夹中,但当我在新的URL上打开这个文件时(请参阅),同一个文件在Firefox中看起来有所不同——仍然有一些怪怪的字符,但它们很少。不同外观的屏幕截图:


有人知道这里发生了什么吗?我怎样才能把角色清理干净?这个文件使用什么字符编码?为什么从服务器上的一个网站复制到另一个网站时,同一个文件在Firefox中看起来不同?

您的文件是UTF-16;尝试在Firefox中使用它作为编码。它看起来更正确,尽管仍然有一些零星的CJK字符,这可能是因为您的一些字符的尾端不正确


请记住,如果你的所有问题都有好的答案,请接受答案;堆栈溢出上的许多人可能不会继续回答您的问题,因为他们缺乏声誉激励。

我以前遇到过这个问题。某些IDE中存在无法显示的隐藏字符

我可以通过在记事本中打开文件并复制文本,然后删除文件来解决这个问题。然后我从头开始创建了这个文件,并仅粘贴了纯文本

您不想用写字板之类的东西复制文本,因为这样也会复制隐藏字符

编辑:


您可能还想尝试接受一些人对您之前问题的回答,因为如果他们知道您将提供声誉,您将从愿意帮助的人那里得到更多的答复。

谢谢。奇怪的是,在Firefox中,第二个URL在UTF-16中自动打开,而第一个URL在UTF-8中自动打开。这就解释了截图之间的差异。我想知道为什么会这样?谢谢。我希望能够自动清除这些字符,但我将为此提出一个新问题。我将返回并选择我前面问题的答案:)