php中的UTF-8编码问题,特殊字符

时间:2017-08-29 20:40:27

标签: php encoding utf-8

我正在尝试重新创建一个字符串,但我遇到了utf-8编码的问题(我猜?)

我使用下面的代码格式化字符串

$pre_subject = (strip_tags(html_entity_decode($temp_subject)));
$pre_subject = str_replace('Â', '', $pre_subject);
$pre_subject = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $pre_subject);

问题是,不是像下面第一句那样得到结果,而是得到第二个结果。

1st. summary: SHANGHAI room - Réunion 
2nd. summary: SHANGHAI room - R'eunion

我需要将格式保留为第一个示例,如何修改我的代码?

2 个答案:

答案 0 :(得分:0)

该字符串包含UTF-8字符。您需要对它们进行解码,或者告诉读取它的任何内容以使用UTF-8编码。

所以,这个:

$pre_subject = (strip_tags(html_entity_decode($temp_subject)));
$pre_subject = str_replace('Â', '', $pre_subject); // if this was trying to fix the problem, remove it
$pre_subject = utf8_decode($pre_subject);

或者将其添加到<head>

<meta charset="utf-8">

答案 1 :(得分:0)

让PHP标题如下:

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

另外,在处理utf-8时,如果需要进行字符串替换,请使用mb_str_replace而不是str_replace