旧站点,解决错误"The byte stream was erroneous according to the character encoding that was declared"



我需要支持一个旧站点。使用HTML4、

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" > 

以及具有CCD_ 1排序规则的DB TABLE字段。在PHP代码中,当连接到DB时,始终使用set names 'latin1'

最近,网站主机更新到了PHP 7.4。由于此更新,法国口音字母显示不好。

在FireFox控制台中出现以下错误:

The byte stream was erroneous according to the character encoding that was declared. The character encoding declaration may be incorrect.

根据cPanel和phpinfo((,我现在有:

  • PHP版本7.4.28
  • MySQL版本5.6.41-84.1
  • default_charset:UTF-8

我想错误是因为我发送windows-1252并接收UTF-8…

我知道正确的解决方案是在DB和元TAG中使用UTF-8。

但是,短期内有没有办法用正确的字符集显示所有页面?

编辑:有没有办法显示;拉丁文";当PHP强迫我交付UTF8时进行编码?例如禁用PHP强制或转换"PHP";拉丁文";字符串到UTF8。。。

我开始将测试表替换为UTF8,但后来意识到这是不必要的。我可以继续使用相同的数据库,但在我的网站页面上,我必须做一些更改:

  1. 在HTML中,使用<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >而不是<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" >

  2. 在PHP中,使用set names utf8而不是set names latin1

相关内容

最新更新