【问题标题】:Display latin character in html在html中显示拉丁字符
【发布时间】:2013-01-21 12:03:58
【问题描述】:

当我使用 var_dump($obj) 时,我有一个 PHP 对象显示如下值:

object() (1) { ["name"]=> string(3) "" ... }

但是当我打印 $obj->name 时,浏览器会显示“Lê”。

我的浏览器显示 UTF-8。 HTML 字符集也设置为 utf-8。

我尝试了一些功能,但我没有解决这个问题。

你能帮我解决这个问题吗?谢谢。

编辑:

我已经检查了以下所有项目:

  1. header('Content-Type: text/html; charset=utf-8');
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  3. 我的浏览器显示 UTF-8
  4. $obj 是从 db 表中获取的,该表将“字符集”设置为 utf-8,将“排序规则”设置为 utf8_general_ci
  5. PHP 文件编码为 UTF-8

【问题讨论】:

标签: php latin1


【解决方案1】:

设置一个 UTF-8 header('Content-Type: text/html; charset=utf-8');

我刚刚在 PHP5.4.8、nginx、Ubuntu 12.04 和 Firefox 上对此进行了测试。 AFAIK,至少在过去 5 年中,您几乎可以在任何 PHP 堆栈中获得相同的结果。

<?php

$mystring = 'Lê';

print $mystring;

输出: す

<?php

header('Content-Type: text/html; charset=utf-8');

$mystring = 'Lê';

print $mystring;

输出: 乐

【讨论】:

  • 我做到了。 HTML 元标记字符集是 utf-8。但这并不能解决问题。
  • @Ducati 您知道这与 HTML 元标记不同,对吧?这是文件本身的标题。
  • 您好 Blowski,感谢您的回复。我用了那个代码。我可以打印 'Lê' 并在 html 中正确显示。但是我的问题是我无法正确显示对象的属性。我用新信息更新了我的问题。请看。
  • 糟糕,我发现了我的问题。我在 __get() 中使用了函数 htmlentities()。因此,当我打印对象属性时,它被编码为 ISO-8859-1(此函数在 PHP 5.4.0 之前的默认值)。感谢您抽出宝贵时间帮助我。
猜你喜欢
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多