在textareas中显示不正确的空间(奇怪的unicode)

时间:2013-06-19 18:02:27

标签: php html postgresql unicode

转储我的Postgres数据库并查看输出的查询数据后,它的外观如下:

<p>Persons Name started August 1, 2011.&nbsp; We will provide a courtesy account for Fall 2011 and Winter 2012.&nbsp; He will need to join an existing subscription or create a new one for Spring 2012.</p> 

但是,从查询插入文本区域开始,输出现在如下所示:

<p>Persons Name started August 1, 2011.  We will provide a courtesy account for Fall 2011 and Winter 2012.  He will need to join an existing subscription or create a new one for Spring 2012. </p> 
<p>Added web site info.</p> 

非中断空格(&nbsp;)正在转换为Â。这不应该发生。我不确定这背后的原因。这是某种编码问题吗?

旁注:TinyMCE正在同一页面的另一个地方的另一个textarea中使用。我听说过与TinyMCE和textareas的冲突,所以我认为值得注意这一点。

编辑:我实际上希望html标签显示为标签本身。所以<p>不应成为一个段落,它应该保持原样。 &nbsp;虽然应该转换为空格,而不是这个奇怪的角色。

Edit2:编码字符集曾经是us-acsii,这是通过TinyMCE保存这些数据库条目时的字符集。它现在是UTF-8。

2 个答案:

答案 0 :(得分:1)

尝试通过PHP中的html_entity_decode()函数传递输出。这应该将所有&nbsp html实体转换为空格

答案 1 :(得分:-1)

在将输入放入textarea之前,您应该在输入中使用htmlspecialchars