我想将字符串的字符编码转换为HTML实体,然后再转换回utf-8。我认为,转换到一些编码和返回应该留给我相同的字符串,但它不像它。
我的测试字符串是:
Test: ěščřžýáíé'
转换为HTML-实体
echo mb_convert_encoding('Test: ěščřžýáíé', 'HTML-ENTITIES', 'UTF-8');产出这一结果:
Test: ěščřžýáíé
然而,当我试图转换回utf-8时
echo mb_convert_encoding('Test: ěščřžýáíé', 'UTF-8', 'HTML-ENTITIES');令人惊讶的是,我得到(不正确)输出,而不是原始字符串:
Test: ěščřžýáĂĂ©
如何正确转换编码以获取原始字符串?
发布于 2022-10-31 18:14:59
使用报头修改HTTP报头:
header('Content-Type: text/html; charset=utf-8');注意,在向客户端发送任何输出之前调用此函数。否则,标题也已发送,显然您不能再更改它了。你可以用headers_sent来检查它。有关更多信息,请参见页眉手册页。
<?php
header('Content-Type: text/html; charset=utf-8');
$konv1 = mb_convert_encoding('Test: ěščřžýáíé', 'HTML-ENTITIES', 'UTF-8');
echo $konv1.'<hr>';
$konv2 = mb_convert_encoding($konv1, 'UTF-8', 'HTML-ENTITIES');
echo $konv2.'<hr>';https://stackoverflow.com/questions/37998968
复制相似问题