解决办法:有以下四种解决办法:
1、在浏览器中选择“编码”菜单
事先为浏览器安装多语言支持包(例如在安装ie币安装多语言支持包),这样当浏览网页出现乱码时,即可手工更改此类网页的编码方式,在浏览器中选择菜单栏下的“查看“编码”/“自动选择”/
简体中文(gb2312),如为繁体中文则选择“查看”/“编码”/“自动选择”/繁体中文(big5),其他语言依此类推,选择相应的语系,这样便可消除网页乱码现象
2、修改网页代码
用frontpage等软件打开出现乱码的网页,修改该网页代码,在以下句子中
〈meta
content=“text/html;charset=iso-8859-1”〉,将语种“iso-8859-1”改为gb2312,如果是繁体网页则改为big5
3、无乱码保存网页
用浏览器打开该网页,在“查看”/“编码”中选择“自动选择”,存盘时保存类型选“web页”,编码选择“unicode”,这样保存过的网页再次打开时,在浏览器菜单“查看”/“编码”中不管选择简体中文(gb2312)、简体中文(hz)还是unicode(utf-8)或繁体中文(big5),最终显示都不会出现乱码
关于html的乱码,总的思考方向如下:
通俗来说就是告诉浏览器(或者其他解码你的HTML的东西)要用什么来解码,方法很简单
就是告诉你的编译器用什么格式存html,以WebStorm为例
在file ->settings -> editor -> file encoding里把你所有能看到的选项设为UTF-8
仅就WebStorm而言,存在一些特供问题
同一个HTML文件,直接打开
在WebStorm里开启
这种就属于WebStorm莫名问题,暂时找到的问题描述和解决方案如下 >
1UTF-8国际编码,GBK中文编码。GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立;
2、web tomcat:默认是ISO8859-1,不支持中文的
3javaniocharsetCharsetdefaultCharset() 获得平台默认字符编码;
4getBytes() 是通过平台默认字符集进行编码;
二、引入
在学习任何一门技术时,经常会有初学者遇到中文乱码问题,比如MySQL,是因为在安装时没有设置;而在Servlet中,也会遇到中文乱码问题;
比如:
OutputStream out = responsegetOutputStream();
outwrite(String );
输出中文时可能会出现乱码;
比如:
[java] view plain copy
protected void doGet(>
OutputStream out = responsegetOutputStream();
String data = "博客";
outwrite(datagetBytes("UTF-8"));
输出乱码的问题是程序用UTF-8编码,而浏览器默认用GBK解码了,因此会出现乱码;
三、Servlet相关的几种乱码
1、浏览器调用jsp,html等页面中文显示乱码
此情况需满足两个要求:
(1)文件本身是以utf-8编辑保存的(myEclipse中在properties中鼠标右键选择utf-8)
(2)浏览器用utf-8解析:
(手动)==> 在浏览器中右键选择编码格式为utf-8
(智能)==> 在文件中写入如: <meta name="content-type" content="text/html; charset=UTF-8"> 通过<meta>标签模拟response头,起到告诉浏览器用utf-8的编码解析
(智能)==> responsesetContentType("text/html;charset=UTF-8");起到告诉浏览器用utf-8的编码解析
常用:
<meta name="content-type" content="text/html; charset=UTF-8">或<meta charset="utf-8">
<%@ pageEncoding="utf-8"%>
<xml encoding="UTF-8">
2、通过浏览器调用servlet,页面显示乱码。
Servlet乱码分为request乱码和response乱码;
(1)response乱码问题
解决方法:
在网上很有效的解决方法是添加:
responsesetCharacterEncoding("UTF-8");
解决不了,后来又搜到一条解决方法是:
responsesetContentType("text/html;charset=utf-8");或者 responsesetHeader("content-type","text/html;charset=UTF-8");告诉浏览器用utf-8解析。(setHeader是>
两句都填上,后来终于解决了这个问题;
其实我们应该思考一下本质:
responsesetContentType("text/html;charset=UTF-8"); 目的是为了控制浏览器的行为,即控制浏览器用UTF-8进行解码;
responsesetCharacterEncoding("UTF-8");目的是用于responsegetWriter()输出的字符流的乱码问题。如果是responsegetOutputStream()是不需要此种解决方案的,因为这句话的意思是为了将response对象中的数据以UTF-8解码后的字节流发向浏览器
另一方面在Java WEB应用服务器上,一个>
这可能是由于你的web项目所在系统的字符编码、tomcat的字符编码、开发项目时myeclipse的字符编码以及建立数据库时的编码不一致造成的,点击windows,Preference,点击左侧General,workspace。设置编码为UFT8 别忘了在webxml中配置这个filter哦
利用requestsetCharacterEncoding("UTF-8");设置Tomcat接收请求的编码格式,只对POST方式提交的数据有效,对GET方式提交的数据无效。
要设置GET的编码,可以修改Tomcat中的配置文件serverxml,该文件中相应端口的Connector的属性:URIEncoding="UTF-8",这样,GET方式提交的数据才会被正确解码。
把你的乱码过滤器的filter配置在安全审核filter的前面 filter的执行顺序会按照webxml里配置的顺序进行 如果先进行安全审核的filter, 安全审核的filter从request里获得了数据 那么之后在乱码过滤的filter里在设置正确的编码仍然是乱码
以上就是关于编写网页出现乱码怎么办全部的内容,包括:编写网页出现乱码怎么办、WebStorm 中文乱码问题、javaweb怎么处理中文乱码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)