This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center
                            
                        
                    
                
                                已关闭8年。
            
                    
我有一个几乎完全由ajax驱动的管理员。页面加载时,它将已经在textarea中填充了数据库中的值,并在值周围包裹了一个trim(),以方便使用。保存时,它将序列化到数组中并发布到ajax处理脚本中-反馈以JSON形式返回,并且如果没有其他元素被编辑且未保存,则将重新加载页面。我在流程的每个步骤中都强制执行UTF-8。数据库和表以及连接排序规则是utf8_general_ci,meta标签强制使用UTF-8,json返回带有Content-Type: application/json; charset=utf8标头。

如果在将输出插入文本区域之前在输出周围放置htmlspecialchars(),则这些不间断的空格字符将转换为 

我大约有四个或五个textarea外观和行为完全相同,它们得到的处理完全相同,但是,当我加载页面时,总是有两个相同的字段会注入奇怪的不间断空格。

通过phpMyAdmin添加新行时,在phpMyAdmin中查看时似乎没有这些多余的空间,但是当我在admin中打开同一行时,这些空间就在那里。在我的管理员phpMyAdmin中保存的行有时会显示类似Â或简单,正常的空间。无论哪种方式,在前端,最终输出都不会显示乱码。如果我在文本区域而不是空格中放置任何文本并保存,一切都会按预期工作,则不会出现多余的空格,仅当空格中没有任何内容时,它才会发生...

解决这个问题的一种权宜之计是,如果htmlspecialchars($row['Val']) = ' ',则不要从db输出到textarea中,但这似乎是一种技巧,而不是基于对情况的理解的解决方案。

最佳答案

我很蠢。基督,在复杂的大便结构中,我做了一件愚蠢的事,使这种情况不断发生。抱歉浪费您的时间!我们可以删除这个问题吗?

10-07 19:42
查看更多