Cof*_*fey 16 php character-encoding special-characters
我正在创建一个要保存在本地用户计算机上的文件(不在Web浏览器中呈现).
我目前正在使用html_entity_decode,但这不是转换字符–(这是n-dash)并且想知道我应该使用的其他功能.
例如,当文件导入软件时,而不是ndash或只是 - 它显示为–.我知道我可以使用str_replace,但如果它发生在这个角色上,由于数据是动态的,它可能会与许多其他人一起发生.
dec*_*eze 32
您需要定义目标字符集.–不是默认ISO-8859-1字符集中的有效字符,因此它不会被解码.将UTF-8定义为输出字符集,它将解码:
echo html_entity_decode('–', ENT_NOQUOTES, 'UTF-8');
Run Code Online (Sandbox Code Playgroud)
如果可能的话,你应该避免开始使用HTML实体.我不知道编码数据来自何处,但如果您将其存储在数据库或其他地方,那么您做错了.始终存储UTF-8编码的数据,仅转换为HTML实体,或者在必要时转义为输出.
Lès*_*sté 17
试试mb_convert_encoding():
$string = "n–dash";
$output = mb_convert_encoding($string, 'UTF-8', 'HTML-ENTITIES');
echo $output;
Run Code Online (Sandbox Code Playgroud)