Php 文本区域中不间断空格显示不正确(奇怪的unicode)

Php 文本区域中不间断空格显示不正确(奇怪的unicode),php,html,postgresql,unicode,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

在转储我的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> 
2011年8月1日开始的人员姓名。我们将提供2011年秋季和2012年冬季的礼节性账户。他将需要加入现有订阅或为2012年春季创建新订阅。

但是,从将查询插入到文本区域的角度来看,现在的输出如下所示:

<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> 
人员姓名于2011年8月1日开始。Ó我们将为2011年秋季和2012年冬季提供礼节性账户。Ô他将需要加入现有的订阅或为2012年春季创建新的订阅。Ã

添加了网站信息。

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

旁注:TinyMCE正在同一页面另一个位置的另一个文本区域中使用。我听说过与TinyMCE和textareas的冲突,所以我认为值得注意

编辑:我实际上希望html标记显示为标记本身。所以
不应该成为一个段落,实际上应该保持这样<代码>但是应该转换为空格,而不是这个奇怪的字符


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

在将输入放入文本区域之前,您应该在输入上使用
htmlspecialchars

尝试通过PHP中的
html\u entity\u decode()
函数传递输出。应该将所有
html实体转换为空格的是UTF8中的数据库/表,html页面如何?UTF8是否有
meta
标记?您使用了“textarea”一词,但我看到的都是
标记。是的,数据库是UTF8,有一个UTF8元标记。@AlexMorrise是的,所有这些都是,而且它也应该保持这样的外观。另一方面,不间断的空格实际上应该显示为空格。因此,只有部分内容应该转换为实际的html。如果这是不可能的,那么不间断的空格标记也可以这样显示,而不进行转换。这让我认为这是一个编码问题,因为
中的任何html标记都应该显示文本,而不是作为页面元素呈现。这将确保它以字面上的“”而不是空格的形式进入页面,在第一段中,作者要求看起来像“”-对不起,我不知道他在想“”,使用这个,字符现在看起来像这样:
。不知道这是如何显示您,但对我来说,它似乎是一个符号与黑色背景,与白色问号中间。这是不正确的。@请改为尝试
html\u entity\u decode()
。让我知道它是怎么回事,我现在又得到了
。这很奇怪。对不起,我帮不上忙。如果值得一提的话,我将继续研究ITI,之前的编码是us acsii。