html字符编码
UTF-8编码,可变长编码,字符数字表示通过Ascll码或者Unicode码来表示字符。
hex---十六进制
bin---二进制
oct---八进制
编码工具(https://gchq.github.io/CyberChef/)
标签本身不能编码
数字表示法的不方便之处,在于必须知道每个字符的码点,很难记忆。为了能够快速输入,HTML 为一些特殊字符,规定了容易记忆的名字,允许通过名字来表示它们,这称为实体表示法(entity)。
实体的写法是&name;
,其中的name
是字符的名字。下面是其中一些特殊字符,及其对应的实体。
<
:<
---常用
>
:>
---常用
"
:"
'
:'
&
:&
©
:©
#
:#
§
:§
¥
:¥
$
:$
£
:£
¢
:¢
%
:%
*
:$ast;
@
:@
^
:^
±
:±
空格:
---常用
注意,上面最后一个特殊字符是空格,它也有对应的实体表示法。
字符的数字表示法和实体表示法,都可以表示正常情况无法输入的字符,逃脱了浏览器的限制,所以英语里面称为“escape”,中文翻译为“字符的转义”。
表单是由窗体和控件组成的,一个表单一般应该包含用户填 写信息的输入框,提交按钮等,这些输入框,按钮叫做控件,表单很像容器,它能够容纳各种各样的控件。
标签样式
< form action="url" method=get|post name=“myform” >< /form >
name:表单提交时的名称
action:提交到的地址
method:提交方式,默认为get
表单格式构成
表单标签:指form标签本身,他是一个包含表单元素的区域
表单域:是form标签中用来收集用户输入的每一项,通常用input标签来定义,input标签有不同的类型,用以对用用户不同的数据
表单按钮:用于提交form表单中所有信息到服务
form表单属性:
accept-charset:该属性规定服务器使用哪种字符来处理表单数据
action:必须的action属性规定当提交表单时,向何处发送表单数据
autocomplete:该属性规定表单是否应该启用自动完成功能。自动完成功能允许浏览器预测对字段的输入,当用户再字段开始输入时,浏览器基于之前输入过的值,应该显示处字段填写的选项
enctype:该属性规定在将表单数据发送到服务器之前如何对其进行编码。(只有 method=“post” 时才使用 enctype 属性。)
name:该属性规定表单的名称。name 属性用于在 JavaScript 中引用元素,或者在表单提交之后引用表单数据。
target:该属性规定一个名称或一个关键词,指示在何处打开 action URL,即在何处显示提交表单后接收到的响应。target 属性定义浏览器上下文(比如选项卡、窗口或内联框架)的名称或关键词。
任何一个文字或符号都是一个字符,但所占的字节不一定相同。除了常见的字母汉字还有特殊字符例如货币字符¥等。
字符的集合被称为字符集
字符编码:定义字符集中的字符如何编码为特定的二进制数。字符集和字符编码一般一一对应,GBK 字符集对应 GBK 编码,ASCii 字符集对应 ASCii 编码,但 Unicode 字符集有 UTF-8、UTF-16 和 UTF-32 三种编码方式。
Unicode:Unicode几乎编码定义了世界上几乎所有的字符。
码点/码位:码点是编码中为某个字符设定的数值,具有唯一性和一一对应性。码点只定义了一个字符对应的数值,没有定义这个数值是怎么存储的,这个由具体的编码方式决定。
U+XXXXXX 是码点的表示形式,X 代表一个十六进制数字,u 后面可以有4-6位,不足4位往前补0,所以码点的取值范围为 U+0000 ~ U+10FFFF,但实际 unicode 至今才扩展到二进制21位,而且21位代表的1114112个码点中并不是都代表着一个字符,只有大约10%的空间被使用。
码元:码点经过映射后得到的二进制串的转换格式单位称为码元,码点就是一串二进制数,码元就是切分这个二进制数的方法。
编码方案:
Unicode:Unicode 只是给每个字符分配了个码点,但是码点转换为二进制存储时可能占1-4个字节,产生了定界问题:如何确定用几个字节表示一个字符。不同的解决方法对应不同的编码方案。
UTF-8:用1~4 byte 编码 Unicode 字符
Unicode范围 | UTF-8编码方式 |
---|---|
U+0000 ~ U+007F | 0xxxxxxx |
U+0080 ~ U+07FF | 110xxxxx 10xxxxxx |
U+0800 ~ U+FFFF | 1110xxxx 10xxxxxx 10xxxxxx |
U+010000 ~ U+10FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
将 unicode 码点转换为二进制后,按照对应的范围从后往前截取出表中空出来的位数,依次从后往前填充进去,空的位数填0,就得到在内存中存储的值。