html字符编码
UTF-8编码,可变长编码,字符数字表示通过Ascll码或者Unicode码来表示字符。
hex---十六进制
bin---二进制
oct---八进制
编码工具(https://gchq.github.io/CyberChef/)
标签本身不能编码
数字表示法的不方便之处,在于必须知道每个字符的码点,很难记忆。为了能够快速输入,HTML 为一些特殊字符,规定了容易记忆的名字,允许通过名字来表示它们,这称为实体表示法(entity)。
实体的写法是&name;
,其中的name
是字符的名字。下面是其中一些特殊字符,及其对应的实体。
-
<
:<
---常用 -
>
:>
---常用 -
"
:"
-
'
:'
-
&
:&
-
©
:©
-
#
:#
-
§
:§
-
¥
:¥
-
$
:$
-
£
:£
-
¢
:¢
-
%
:%
-
*
:$ast;
-
@
:@
-
^
:^
-
±
:±
-
空格:
---常用
注意,上面最后一个特殊字符是空格,它也有对应的实体表示法。
字符的数字表示法和实体表示法,都可以表示正常情况无法输入的字符,逃脱了浏览器的限制,所以英语里面称为“escape”,中文翻译为“字符的转义”。
form表单
表单是由窗体和控件组成的,一个表单一般应该包含用户填 写信息的输入框,提交按钮等,这些输入框,按钮叫做控件,表单很像容器,它能够容纳各种各样的控件。
标签样式
< form action="url" method=get|post name=“myform” >< /form >
-
name:表单提交时的名称
-
action:提交到的地址
-
method:提交方式,默认为get
表单格式构成
-
表单标签:指form标签本身,他是一个包含表单元素的区域
-
表单域:是form标签中用来收集用户输入的每一项,通常用input标签来定义,input标签有不同的类型,用以对用用户不同的数据
-
表单按钮:用于提交form表单中所有信息到服务
form表单属性:
-
accept-charset:该属性规定服务器使用哪种字符来处理表单数据
<form accept-charset="value" >
-
action:必须的action属性规定当提交表单时,向何处发送表单数据
<form action="value">
-
autocomplete:该属性规定表单是否应该启用自动完成功能。自动完成功能允许浏览器预测对字段的输入,当用户再字段开始输入时,浏览器基于之前输入过的值,应该显示处字段填写的选项
<form autocomplete="on|off">
-
enctype:该属性规定在将表单数据发送到服务器之前如何对其进行编码。(只有 method=“post” 时才使用 enctype 属性。)
<form enctype="value">
method:该属性规定如何发送表单数据(表单数据会被发送到在 action 属性中规定的页面中)。
表单数据可被作为 URL 变量的形式来发送(method=“get”)或者作为 HTTP post 事务的形式来发送(method=“post”)。
-
get:
1,将表单数据以名称/值对的形式附加到 URL 中, URL 的长度是有限的(大约 3000 字符) 2,绝不要使用 GET 来发送敏感数据!(在 URL 中是可见的) 3,对于用户希望加入书签的表单提交很有用 4,get更适用于非安全数据
-
post:
1,将表单数据附加到 HTTP 请求的 body 内(数据不显示在 URL 中) 2,没有长度限制 3,通过 POST 提交的表单不能加入书签
<form method="get|post">
-
-
name:该属性规定表单的名称。name 属性用于在 JavaScript 中引用元素,或者在表单提交之后引用表单数据。
<form name="text">
-
target:该属性规定一个名称或一个关键词,指示在何处打开 action URL,即在何处显示提交表单后接收到的响应。target 属性定义浏览器上下文(比如选项卡、窗口或内联框架)的名称或关键词。
<form target="_blank|_self|_parent|_top|framename">
字符编码
任何一个文字或符号都是一个字符,但所占的字节不一定相同。除了常见的字母汉字还有特殊字符例如货币字符¥等。
字符的集合被称为字符集
字符编码:定义字符集中的字符如何编码为特定的二进制数。字符集和字符编码一般一一对应,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,就得到在内存中存储的值。