6

’ is being displayed instead of - in php page

I tried using different encoding types like:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>

and

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

but result is the same. What could be the problem?

Input

<strong style="color:#A8A8A8;">1</strong> – Lorem Ipsum.

Result

1 – Lorem Ipsum.

4

5 回答 5

4

确保您的 html 标头指定 utf8

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

这通常对我有用(显然,如果内容是 utf8)。

如果设置内容类型,则无需转换为 html 实体。


检查http://php.net/manual/en/function.mb-convert-encoding.php

<?php
     header('Content-Type: text/html; charset=utf-8');
     mb_internal_encoding('utf-8');
?>

可能这会对你有所帮助。

于 2013-04-04T10:55:58.613 回答
2

元标记不改变输出的事实是一个强有力的指标,表明有一些东西覆盖它;可能是 HTTP 标头中指定的字符集(优先于元标记),您确定没有在此处设置吗?

于 2013-04-04T11:06:48.820 回答
2

看起来您的源数据在此过程中从一种编码转换为另一种编码。尝试确保所有步骤都具有相同的编码。

  1. 您的(MySQL?)数据是否存储为 UTF8?
  2. 您的 .php 文件是否保存为 UTF8?

在将 UTF8 数据作为 ISO-8859-1 数据处理时,通常会弹出这样的转换错误。(多字节与单字节?不确定)。

于 2013-04-04T10:56:25.683 回答
1
于 2013-04-04T11:13:27.620 回答
0

从 javacode 创建文件并将编码设置为 UTF-16 时遇到了同样的问题。

于 2015-03-09T19:40:04.630 回答