Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php UTF-8和HTML实体之间的区别是什么?_Php_Utf 8_Html Entities - Fatal编程技术网

Php UTF-8和HTML实体之间的区别是什么?

Php UTF-8和HTML实体之间的区别是什么?,php,utf-8,html-entities,Php,Utf 8,Html Entities,UTF-8和HTML实体之间的区别是什么 是字节级编码的编码方案 提供一种在标准(通常为ASCII)字符空间中表示多个字符的方法。当UTF-8不可用时,它还使它们更易于人类阅读 如今,HTML实体的主要目的是确保看起来像HTML的文本呈现为文本。例如,“小于”或“大于”运算符(或)在按特定顺序放置(即)时可能会意外地呈现为HTML,而其目的是呈现为文本。。HTML实体主要用于转义HTML标记,以便可以在HTML中显示(而不是混淆显示与输出)。例如,输出一个>,而>关闭一个标记。虽然可以使用HTM

UTF-8和HTML实体之间的区别是什么

是字节级编码的编码方案

提供一种在标准(通常为ASCII)字符空间中表示多个字符的方法。当UTF-8不可用时,它还使它们更易于人类阅读


如今,HTML实体的主要目的是确保看起来像HTML的文本呈现为文本。例如,“小于”或“大于”运算符(
)在按特定顺序放置(即)时可能会意外地呈现为HTML,而其目的是呈现为文本。

。HTML实体主要用于转义HTML标记,以便可以在HTML中显示(而不是混淆显示与输出)。例如,
输出一个>,而>关闭一个标记。虽然可以使用HTML实体生成完整的Unicode,但效率非常低,而且非常糟糕


UTF-8是一种针对Unicode的多字节编码,它涵盖了如何在经典美国ASCII码页之外显示字符,而无需切换码页和尝试混合码页。单个代码点(可以将其视为一个字符,尽管这并不真正正确)可以由6个字节的数据组成。它用于表示基本多语言平面(BMP)内外的任何字符,例如重音字符、东亚字符以及凯尔特树书写(Ogham)等字符集

UTF-8是一种编码,
htmlentities
是一种使用户输入安全地显示在页面上的功能,因此HTML标记不会直接添加到标记中。请参阅。

更多信息,请参阅UTF-8,这是一种将自然数列表无损和自同步映射到ByTestStream的方法,这样您就可以恢复(无损)自然数,如果您刚好落在流的“中间”,这不是什么大问题。(自同步)

每个自然数恰好代表一个“字符”

HTML实体是一种表示相同自然数的方式,如:

,表示自然数127,在unicode中是
DEL
字符

在UTF-8中,这是ByTestStream:
0111111

一旦超过127,它就变成多个八位组,因此128变成:
10000001 1111111111

一行中的两个
DEL
字符变为
0111111011111
。UTF-8的设计方式是,始终可以从ByTestStream中检索“unicode标量值”的原始列表,即使例如4个八位字节的ByTestStream可以映射回1到4个不同的标量值。因此,UTF-8被称为“可变长度”。

您在屏幕上看到的“A”实际上并不是作为“A”存储在计算机中,而是1和0的序列。字符集或编码指定以这种方式对字符进行编码的方法。它只包含少量可以编码的字符,几乎只限于英语字符。但由于历史原因和当时的技术限制,它曾经是互联网的角色集(很早以前)

UTF-8和HTML实体都可用于编码不属于ASCII的字符。HTML实体通过赋予特殊字符序列特殊意义来实现这一点。使用它,您可以仅使用ASCII字符对ASCII未涵盖的字符进行编码。UTF-8(Unicode)通过简单地扩展字符集以包含更多字符来实现相同的功能。HTML实体只有在您费心解码它们的环境中才是“有效”的,而这种环境通常是浏览器。UTF-8字符在任何支持字符集的应用程序中都是通用的

仅包含ASCII包含的字符的文本:

价格:$20
(UTF-8)
价格:$20
(带HTML实体的ASCII)

包含ASCII未涵盖的欧洲字符的文本:

Beträge:20欧元
(UTF-8)
Beträ;通用电气:20欧元(带HTML实体的ASCII)

包含亚洲字符的文本,大多数肯定不包含在ASCII中:

値段:二千円(UTF-8)
和#x5024段:二千円(带HTML实体的ASCII)

UTF-8的问题在于客户机需要理解UTF-8。在过去十年左右的时间里,这一点并不重要,因为所有现代计算机和浏览器都能理解UTF-8。UTF-8(Unicode)可以对这个星球上目前使用的几乎所有字符进行编码(只有少数例外)。使用它,您可以按“原样”处理文本。它绝对应该是保存文本的首选编码

HTML实体的问题在于普通字符具有特殊的含义。编写
时ä,它具有“ä”的特殊含义。如果确实要编写“ä;”,则需要将序列双重编码为
&;auml
HTML实体也是出了名的不可读。您不希望使用它们在普通文本中对“特殊”字符进行编码。在这种能力下,他们是一个固定在一个不适当的角色集上的乱七八糟的人。改用Unicode


独立于所用字符集的HTML实体的重要用途是将HTML标记与文本分开。HTML也赋予了特殊字符序列特殊的含义<代码>文本
是一个正常的字符序列,但对HTML解析器有特殊的意义。如果您打算只编写“文本”,则需要将其编码为
b文本/b
,这样HTML解析器就不会将其误认为HTML标记。

对不起。可读的?我认为您不应该使用HTML实体,而应该始终对页面使用UTF-8编码。显示实际字符比表示相同字符的某些ascii组合可读性强得多。当然,您需要一种支持