首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用php在html中显示utf8中文

问如何用php在html中显示utf8中文
EN

Stack Overflow用户
提问于 2013-09-20 13:54:20
回答 3查看 520关注 0票数 0

我在utf-8中的mysql数据库中存储了汉字,但我需要在一个必须输出为charset=ISO-8859-1的网页上显示这些汉字。

当用拉丁文呈现时,我的测试字符串看起来像"dsfsdfsdfåšä¸€ä¸ªæµ<请“

我尝试以以下方式使用have实体,因为我无法从php文档中看出$encoding是指输入字符串的编码还是想要的输出字符串。

代码语言:javascript
复制
$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  );

但两者的输出字符串都保持不变。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-20 14:06:45

您不能在ISO-8859-1字符集中输出汉字.这是不可能的。

你有两种可能性:

  1. 坚持UTF-8 (推荐)
  2. 选择另一个与中文兼容的字符集(BIG5,如果我的记忆正确的话)

为什么您的页面必须呈现为拉丁-1?我觉得这个要求很奇怪。我的建议是在任何地方(从DataBase编码到呈现)使用UTF-8字符集。它将在未来给你省下很多痛苦。

票数 3
EN

Stack Overflow用户

发布于 2013-09-20 14:00:38

htmlentities函数不将字符转换为数字字符实体。为此,您可以使用mb_encode_numericentity函数:

代码语言:javascript
复制
$row['admin_comment'] = mb_encode_numericentity($row['admin_comment'], 
                            array(0xFF, 0xFFFF, 0, 0xFFFF), "UTF-8");

不过,您可能应该考虑迁移到UTF-8。

票数 0
EN

Stack Overflow用户

发布于 2013-09-24 08:31:46

结果,您可以将页面中的iframe设置为不同的编码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18918536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档