如何将带有“(ISO-8859-1)字符的字符串转换为普通(UTF-8)字符?
How to convert String with “ (ISO-8859-1) characters to normal (UTF-8)characters?
<li>Jain R.K. and Iyengar S.R.K., “Advanced Engineering Mathematicsâ€, Narosa Publications,</li>
我在数据库中有很多原始 html 字符串。所有的文字都有这些奇怪的字符。我怎样才能将其转换为普通文本以将其保存回数据库中。
$final = '<li>Jain R.K. and Iyengar S.R.K., “Advanced Engineering Mathematicsâ€, Narosa Publications,</li>';
$final = utf8_encode($final);
$final = htmlspecialchars_decode($final);
$final = html_entity_decode($final, ENT_QUOTES, "UTF-8");
$final = utf8_decode($final);
echo $final;
我试过上面的代码,它在网络浏览器中显示正确,但仍然在数据库中保存相同的奇怪字符。
数据库字符集为utf-8
“
对于 “
是 "Mojibake"。您可以尝试避免使用非 ascii 引号,但这只会延迟再次陷入麻烦。
您需要在表格和连接中使用 utf8mb4
。有关 Mojibake 的可能原因,请参阅 。
$final = '<li>Jain R.K. and Iyengar S.R.K., “Advanced Engineering Mathematicsâ€, Narosa Publications,</li>';
$final = str_replace("Â", "", $final);
$final = str_replace("’", "'", $final);
$final = str_replace("“", '"', $final);
$final = str_replace('–', '-', $final);
$final = str_replace('â€', '"', $final);
对于过去的数据,我用UTF-8字符替换了奇怪的字符。
为了将来的数据,我在 php、html 和数据库连接中将字符集设置为 utf8。
使用 ftfy 工具修复文本更安全 https://ftfy.readthedocs.io/en/latest/
<li>Jain R.K. and Iyengar S.R.K., “Advanced Engineering Mathematicsâ€, Narosa Publications,</li>
我在数据库中有很多原始 html 字符串。所有的文字都有这些奇怪的字符。我怎样才能将其转换为普通文本以将其保存回数据库中。
$final = '<li>Jain R.K. and Iyengar S.R.K., “Advanced Engineering Mathematicsâ€, Narosa Publications,</li>';
$final = utf8_encode($final);
$final = htmlspecialchars_decode($final);
$final = html_entity_decode($final, ENT_QUOTES, "UTF-8");
$final = utf8_decode($final);
echo $final;
我试过上面的代码,它在网络浏览器中显示正确,但仍然在数据库中保存相同的奇怪字符。
数据库字符集为utf-8
“
对于 “
是 "Mojibake"。您可以尝试避免使用非 ascii 引号,但这只会延迟再次陷入麻烦。
您需要在表格和连接中使用 utf8mb4
。有关 Mojibake 的可能原因,请参阅
$final = '<li>Jain R.K. and Iyengar S.R.K., “Advanced Engineering Mathematicsâ€, Narosa Publications,</li>';
$final = str_replace("Â", "", $final);
$final = str_replace("’", "'", $final);
$final = str_replace("“", '"', $final);
$final = str_replace('–', '-', $final);
$final = str_replace('â€', '"', $final);
对于过去的数据,我用UTF-8字符替换了奇怪的字符。
为了将来的数据,我在 php、html 和数据库连接中将字符集设置为 utf8。
使用 ftfy 工具修复文本更安全 https://ftfy.readthedocs.io/en/latest/