Php 文本区域中不间断空格显示不正确(奇怪的unicode)
在转储我的Postgres数据库并查看输出的查询数据时,以下是它的外观:Php 文本区域中不间断空格显示不正确(奇怪的unicode),php,html,postgresql,unicode,Php,Html,Postgresql,Unicode,在转储我的Postgres数据库并查看输出的查询数据时,以下是它的外观: <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>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>
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。