我在utf-8中的mysql数据库中存储了汉字,但我需要在一个必须输出为charset=ISO-8859-1的网页上显示这些汉字。
当用拉丁文呈现时,我的测试字符串看起来像"dsfsdfsdfåšä¸€ä¸ªæµ<请“
我尝试以以下方式使用have实体,因为我无法从php文档中看出$encoding是指输入字符串的编码还是想要的输出字符串。
$row['admin_comment']=htmlentities( $row['admin_comment'] ,
ENT_COMPAT | ENT_HTML401 ,
'ISO-8859-1' ,
false );
$row['admin_comment']=htmlentities( $row['admin_comment'] ,
ENT_COMPAT | ENT_HTML401 ,
'UTF-8' ,
false );但两者的输出字符串都保持不变。
发布于 2013-09-20 14:06:45
您不能在ISO-8859-1字符集中输出汉字.这是不可能的。
你有两种可能性:
为什么您的页面必须呈现为拉丁-1?我觉得这个要求很奇怪。我的建议是在任何地方(从DataBase编码到呈现)使用UTF-8字符集。它将在未来给你省下很多痛苦。
发布于 2013-09-20 14:00:38
htmlentities函数不将字符转换为数字字符实体。为此,您可以使用mb_encode_numericentity函数:
$row['admin_comment'] = mb_encode_numericentity($row['admin_comment'],
array(0xFF, 0xFFFF, 0, 0xFFFF), "UTF-8");不过,您可能应该考虑迁移到UTF-8。
发布于 2013-09-24 08:31:46
结果,您可以将页面中的iframe设置为不同的编码。
https://stackoverflow.com/questions/18918536
复制相似问题