Php HTML文本区域-显示特殊字符

Php HTML文本区域-显示特殊字符,php,html,encoding,utf-8,Php,Html,Encoding,Utf 8,我在文本区域显示此字符时遇到问题: 我的网页(包括元头和文件编码)编码是UTF-8。数据库、表和相应字段也是UTF-8格式,因为它是默认编码。我正在处理欧洲文本 我读取保存在数据库中的文本,并将其显示在文本区域中 但是,此字符(且仅此字符)始终显示为: & 如何在文本区域中正确显示此字符? 我是否应该将页面/数据库的编码更改为UTF-16或类似的格式?我应该使用预标签吗?我应该用PHP调用一些函数,比如htmlentities()来显示页面吗 如果我遗漏了一些明显的东西,我会提前道歉

我在文本区域显示此字符时遇到问题:

我的网页(包括元头和文件编码)编码是UTF-8。数据库、表和相应字段也是UTF-8格式,因为它是默认编码。我正在处理欧洲文本

我读取保存在数据库中的文本,并将其显示在文本区域中

但是,此字符(且仅此字符)始终显示为:

&
如何在文本区域中正确显示此字符?

我是否应该将页面/数据库的编码更改为UTF-16或类似的格式?我应该使用预标签吗?我应该用PHP调用一些函数,比如htmlentities()来显示页面吗

如果我遗漏了一些明显的东西,我会提前道歉

注意#1:请注意,字符是“…”(省略号)而不是“…”(三点)

注意#2:我使用webmin管理数据库,它正确显示数据。但有趣的是,当我编辑行时,数据在webmin的文本区域中也显示为“&”

注意#3:我打印了数据以显示在文本区域内。当我检查HTML时,一切都显示良好,但符号“…”显示为

 & amp ;
(全部加在一起。我必须将字符分开才能在此处正确显示)

这相当于“&”。我正在使用

htmlspecialchars($string_for_textarea, ENT_QUOTES, 'UTF-8');

要生成HTML。。。我目前正试图弄明白为什么这个函数会弄乱字符…

您只是从某个地方复制它并粘贴到源代码中吗?如果是,, 我建议您使用以下省略号的ascii代码

<textarea>&#133;</textarea>
和#133;

已解决-问题在别处

textarea中显示的数据实际上是使用PHP Excel Reader库从电子表格导入的

出于某种原因,在导入值的PHP脚本中,如果一个单元格有这个符号,那么它的读取方式将不同于没有这个符号的单元格

我改为PHPExcel(另一个库),并设法正确导入这些值

感谢您的反馈和建议。

echo htmlentities($string,entu COMPAT,“UTF-8”)


使用此

渲染文本区域的html是什么?在textarea标记中键入什么?在文本区域中,我显示存储在数据库中的文本。显示的HTML是“&”(但在数据库中我看到“…”)显示了浏览器收到的HTML的实际示例。如果它包含“…”,那么问题在于渲染,我们也需要了解相关的CSS。如果不是,那么问题在于生成te HTML。您还应该使用生成的测试数据进行测试,例如放置在
p
元素中,以查看这是否以任何方式与
textarea
相关联。不,我正在从数据库中读取它(使用MySQL和PHP),并将其显示在textarea中。问题是,在数据库中,我看到“…”但当我以HTML呈现它时,它会显示“&”@user1183352您能在将数据显示在文本区域并将其放入问题之前对其进行var_转储吗?@user1183352我可以写一个解决方法,但我确实在研究是什么导致了这一问题。&sign-in“…;”会逃到&;这会扼杀ascii的显示,但这并不能解释为什么它会删除#133。顺便说一句-“…”不是ascii字符,而是Unicode字符,这很好,因为HTML4/5数字字符引用(语法)使用Unicode代码点。次要的一点,但作为规则,最好避免使用数字实体。对于省略号,有一个
&hellip用于此目的的实体。它使得从源代码处更容易理解预期输出是什么,并消除了编号实体在不同编码中表示其他内容的任何问题。您可以通过添加解释或文档参考来改进答案。
<textarea>&#133;</textarea>