旧站点,正在解决错误 "The byte stream was erroneous according to the character encoding that was declared"
old site, solving error "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" >
和 DB TABLE 字段具有 latin1_swedish_ci
排序规则。
在 PHP 代码中,当连接到数据库时,总是使用 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...
我知道正确的解决方案是在数据库和元标记中使用 UTF-8。
但是有没有办法让短 运行 以正确的字符集显示所有页面?
编辑:当 PHP 强制我提供 UTF8 时,有没有办法显示“拉丁”编码?例如禁用 PHP 强制,或将“拉丁”字符串转换为 UTF8,...
我开始将测试 TABLE 替换为 UTF8,但后来意识到没有必要。我可以继续使用相同的数据库,但在我的站点页面中我必须进行一些更改:
在HTML中,使用<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
代替<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" >
在PHP中,使用set names utf8
代替set names latin1
我需要支持一个旧站点。使用 HTML4、
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" >
和 DB TABLE 字段具有 latin1_swedish_ci
排序规则。
在 PHP 代码中,当连接到数据库时,总是使用 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...
我知道正确的解决方案是在数据库和元标记中使用 UTF-8。
但是有没有办法让短 运行 以正确的字符集显示所有页面?
编辑:当 PHP 强制我提供 UTF8 时,有没有办法显示“拉丁”编码?例如禁用 PHP 强制,或将“拉丁”字符串转换为 UTF8,...
我开始将测试 TABLE 替换为 UTF8,但后来意识到没有必要。我可以继续使用相同的数据库,但在我的站点页面中我必须进行一些更改:
在HTML中,使用
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
代替<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" >
在PHP中,使用
set names utf8
代替set names latin1