整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

记事本编写的HTML乱码,如何解决?

天第一次看HTML5的书籍,尝试使用记事本编写第一个网页,不料,打开网页后,竟然是乱码状态,愁煞吾也,这个问题怎么破呢?经查相关资料,是因为记事本默认存储的编码格式与html中的编码格式不一致导致的.....

情况具体是这样的:

第一步是将写好的内容的记事本的后缀“TXT”改成了HTML

打开网页之后是这样的:乱码


查阅资料后,解决方法是这样的:

在网页空白处点击右键,找到编码点击,选择UTF-8,问题就解决了。



还有一种方法就是,使用记事本另存为修改后缀名为HTML,编码处选择UTF-8,就不会出现乱码现象了。

单属性汇总:

1 name属性

服务器会识别不同的name属性,并根据name属性来捕获不同元素内的数据。

2 value属性

value 属性为 input 元素设定值。

对于不同的输入类型,value 属性的用法也不同:

type="button", "reset", "submit" - 定义按钮上的显示的文本

type="text", "password", "hidden" - 定义输入字段的初始值

type="checkbox", "radio", "image" - 定义与输入相关联的值

注释:<input type="checkbox"> 和 <input type="radio"> 中必须设置 value 属性。

注释:value 属性无法与 <input type="file"> 一同使用。

注意:单选框和复选框传递数据到数据库时一定要设置value, 否则插入数据失败;

3 type属性

它决定了<input>标签在页面中的表现样式和功能

text 文本框

password 密码框

radio 单选框

checkbox 复选框

file 文件域

hidden 隐藏域

image 图像域

submit 提交按钮

reset 重置按钮

button 普通按钮

4 size属性

列表框中size属性用来设置列表框显示的行数;

文本框和密码框会使用size属性设置域的显示宽度;

5 disabled属性

定义disabled属性可以禁止使用该元素;

无法将数据提交到服务器处理;

6 readonly属性

常用在输入性表单对象中(如文本框、密码框、文本区域),用来禁止输入任何信息;

可以将数据提交到服务器处理;

7 checked属性

它与disabled属性一样没有属性值,常用在选择性表单对象中,定义对象处于被选中状态(如单选按钮和复选框)

但在列表框或者下拉式菜单中,为了表示被选中的项目,可使用selected属性;

7 placeholder属性

规定帮助用户填写输入字段的提示。

表单对象:

1 文本框

<input type="text" name="textfield" id="textfield" value="单行文本框" size="20" maxlength="20">

必需的属性:name type

2 密码域

<input type="password" name="passwordfield" id="passwordfield">

必需的属性:name type

3 文本域

<textarea name="textarea" cols="20" rows="5" wrap="physical"></textarea>

必需的属性:name cols rows

wrap属性 默认值:输入的文本会自动换行。当数据提交到服务器被处理时, 换行符不会随输入的文本一同被提交到服务器;

off(也可写成wrap):不自动换行, 当输入的内容超出文本区域右边界时, 文本将向左滚动, 并显示滚动条。

如果希望换行,必须手动输入回车键才能将插入点移到下一行;

virtual:文本能够自动换行, 当数据提交到服务器被处理时, 换行符不会随输入文本一同提交到服务器;(默认值)

physical:文本能够自动换行, 当数据提交到服务器被处理时, 换行符将会随输入的文本一同被提交到服务器进行处理;

关于如何限制文本域输入字符串的长度 见javascript|语法|设置文本框

HTML5中wrap中属性值修改为hard|soft

soft 当在表单中提交时, textarea 中的文本不换行, 默认值。

hard 当在表单中提交时, textarea 中的文本换行(包含换行符)。

当使用 "hard" 时, 必须规定 cols 属性

4 单选按钮

单选按钮传递的信息简单,如1或0、True或False。

<input type="radio" name="radio" value="1"/>选项1
<input type="radio" name="radio" value="2"/>选项2
<input type="radio" name="radio" value="3"/>选项3

多个单选按钮通过定义相同的name属性, 以实现捆绑在一起;

必需的属性:type name value

5 复选框

<input type="checkbox" name="checkbox[]" value="1"/>选项2
<input type="checkbox" name="checkbox[]" value="2"/>选项2
<input type="checkbox" name="checkbox[]" value="3"/>选项2

通过设置相同的name属性可以把多个复选框捆绑在一起;

必需的属性:type name value

6 列表框/下拉菜单

<select name="select" size=1>
<option value="1">1</option>
<option value="2" selected="selected">2</option>
<option value="3">3</option>
</select>

如果select元素中不设置size属性,则该元素会显示为下拉菜单样式

<select name="select" size="1" multiple="multiple">
<option value="1">1</option>
<option value="2" selected="selected">2</option>
<option value="3">3</option>
</select>

如果希望以列表框形式显示,则可以使用size属性指定列表框的高度(显示几个选项);

还可以通过mutiple属性定义列表框是否为多选(默认是单选);

通过<optgroup>标签把相关的选项组合在一起:

<select>
<optgroup label="PHP版块">
<option value ="resource">资源共享</option>
<option value ="study">学习交流</option>
<option value ="salary">薪酬待遇</option>
</optgroup>
<optgroup label="IOS版块">
<option value ="resource">资源共享</option>
<option value ="study">学习交流</option>
<option value ="salary">薪酬待遇</option>
</optgroup>
</select>

注意:其中PHP版块和IOS版块不能被选中

所有主流浏览器都支持 <optgroup> 标签。

7 文件域

<input type="file" name="file"/>
<input type="file" name="file" multiple/>

8 按钮

提交按钮

<input type="submit" name="" value="提交"/>

name值必须给出

重置按钮

<input type="reset" name="" value="重置"/>

普通按钮

<input type="button" name="" value="普通按钮"/>

它一般是配合javascript来使用;

关于控制表单提交按钮见: javascript|语法|控制表单提交

9 图像域

<input type="image" name="image" value="提交" src="images/vote_d.gif" alt="提交" align="middle"/>

10 隐藏域

限制上传文件大小

<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />

传递ID值

<input type="hidden" name="id" value="<?php echo $result['id'];?>" />

11 button标签

在 button 元素内部,您可以放置内容,比如文本或图像。这是该元素与使用 input 元素创建的按钮之间的不同之处。

<button type="button" name="button" value="按钮"><img src="hw001.jpeg"/></button>

普通按钮<button type="button">普通按钮</button> 它一般是配合javascript来使用, 默认值

提交按钮<button type="submit">提交按钮</button>

重置按钮<button type="reset">重置按钮</button>

提交表单

enctype属性

该属性包含两种方式:

application/x-www-form-urlencoded 是默认编码类型

multipart/form-data

multipart/form-data编码方式可以用来传输二进制数据或者非ASCII字符的文本(如图片、不同格式的文件等),上传文件必须使用此属性

multipart: 多部件的

multiple: 多重的

text/plain

text/plain将表单属性发送到电子邮箱时,enctype的值必须设为"text/plain",否则将会出现乱码。

发送电子邮件的表单程序

<form name="form1" method="post" action="mailto:marker@broadview.com.cn" enctype="text/plain">
</form>

action 表单提交的脚本

如果传递到本页面,则直接输入控制 action=""

表单提交方式method:post/get

<form action="test.php?id=5" method="post" >
name: <input type="text" name="name" value="100">
</form>

id=5是get传, name="100" 是post传! //高洛峰解释

action="" 表示传递到当前脚本文件

target 指定提交到哪一个窗口

_blank 打开新窗口

_self 当前的窗口,默认值

_parent 上一层窗口

_top 最上层窗口

框架名称 指定指定窗口或框架名称

label标签

作用: 扩大触控区域, 为了提升用户体验, 点击文字也能选中表单

<form action=" method="get" accept-charset="utf-8">
<label>电子邮箱: <input type="text" name="email" value="" placeholder="请输入电子邮箱"/></label><br/>
<label>密码: <input type="password" name="password"/></label><br/>
<label for="address">地址</label>
<input type="text" name="address" id="address" placeholder="请输入地址" />
</form>

for与id一致

<input type="radio" id="sec" name="sex"> <label for="sex">男</label>

简化写法:

<label><input type="checkbox"/>周杰伦-晴天</label>

注意: "for" 属性可把 label 绑定到另外一个元素。请把"for"属性的值设置为相关元素的 id 属性的值。

PHP实例:创建发送邮件信息的html表单

代码:

<html>
<head>
<title>简单邮件发送表单</title>
</head>
<body>
<h1>Mail Form</h1>
<form name="form1" method="post" action="simpleEmail.php">
<table>
<tr><td><b>To</b></td><td><input type="text" name="mailto" size="35"></td></tr>
<tr><td><b>邮件主题:</b></td>
<td><input type="text" name="mailsubject" size="35"></td></tr>
<tr><td><b>邮件内容</b></td>
<td><textarea name="mailbody" cols="50" rows="7"></textarea></td>
</tr>
<tr><td colspan="2">
<input type="submit" name="Submit" value="发送">
</td>
</tr>
</table>
</form>
</body>
</html>


simpleEmail.php

.响应乱码

响应回来的数据存在中文乱码问题

解决方案

可以设置响应数据的格式

 response.setContentType("text/html;charset=utf-8")

告诉浏览器以什么样的格式对响应的数据进行解析

指定了响应数据的格式类型

其值有两部分

  • text/html:响应的数据是一个HTML文本
  • charset=utf-8:响应的数据的字符集是UTF-8的

2.请求乱码

在获取请求的时候出现了乱码

不同的请求数据的解析方式不同

即乱码的处理方式也不同

  • post请求

数据的传递是通过请求体进行传递的

数据的解析是由开发人员在后台进行解析的

解决方案

在后台解析数据时指定解析编码

告诉服务器,以什么样的编码对请求中的数据进行解析

request..setCharacterEncoding("指定编码")
  • get请求

所有的解析是直接由服务器进行操作的,其默认字符集为:ISO-8859-1

其解决方案有两种

方式一:

字符集的转换

将ISO-8859-1的字符串转换成指定编码的字符串

假设需要转换的变量为name

name = new String(name.getBytes("ISO8859-1"),"UTF-8");

此时转换成功,但是该方式需要对每一个字符串都进行转换

相对比较麻烦

方式二

更改服务器默认字符集

将默认的ISO-8859-1改为我们想要的编码

打开tomcat安装目录下的conf目录中的server.xml文件

找到端口号配置的位置

在端口号配置的标签的属性部分新增一个属性

URIEncoding="指定编码"

属性名大小写敏感

表示指定当前服务器所使用的字符集

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>

3.页面乱码

页面乱码分为两种情况

  • HTML页面乱码<meta charset="指定编码"/>
  • JSP页面乱码:在JSP的page指令中指定响应格式
<%@ page contentType="text/html;charset=UTF-8" %>

4.JDBC乱码

在实现JDBC操作的时候,也存在乱码问题

需要指定当前操作的模式

 ?useUnicode=true&characterEncoding=utf-8

在某些引用中,需要指定对应的时区

例如:在SpringBoot中操作JDBC出现乱码时

需要指定时区

?characterEncoding=utf-8&serverTimezone=UTC

5.数据库乱码

在创建数据库的时候,需要指定当前所使用的编码

在数据库执行的时候,字符集中不能带有-

例如:UTF-8必须简写为UTF8

 engine=Innodb default charset=UTF8