JAVA的字符编码及问题
web开发时,字符编码及有时候也会是一个麻烦的问题,没有经验的话,肯定不知道怎么解决,有一定的经验的话,那还是比较简单的。以下,是我学习过程中总结出来的几种字符编码级问题和其解决的方法
1.文档乱码,JAVA文件的乱码,如果是在系统中打开,那应该是因为你的JAVA文件的字符编码及和系统的字符编码及不一致,用带转换功能的编辑器转化一下就好了,比如Notepad++就是一个你轻便的工具,建议大家使用。如果在eclipse中打开,那么可能是ecplise的编码及和与文件的编码及不一致,一般eclipse的初始化编码及是和系统保持一致的,在window下即GBK,可以设置eclipse相应的编码及解决问题,以下演示eclipse中解决字符编码及问题
控制台乱码,项目下右击--->Properties--->Resouce中设置编码级
文件乱码, 文件下右击--->Properties--->Resouce中设置编码级
有种简便的方法,更改eclipse的默认编码级配置
window---->Preference---->General---->Content Types 就可以看见你要设置的哪种类型(后缀)文件的默认编码级了,如果需要设置 JAVA源文件 和 JSP文件的默认编码级, Text--->Java Source File 下方Default encoding栏设置你要设置的编码级,我们一般是 utf-8,同样 Text--->JSP 再设置你要设置的编码级,这样,在eclipse中生成的JAVA文件和JSP文件都是先前设置的好的编码级了。
2.网页乱码,文档不乱码,出现这种情况,可能的原因比较分散,比如 jsp的文件头忘记写,请求响应字符编码及的设置,浏览器的编码级设置等等
(1)当jsp文件头忘记写了,打开页面后,会出现类似阿拉伯文的乱码,我们只需添加头信息,设置编码及即可,例如
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
浏览器类似
(2)请求响应字符编码及设置,其底层原理就是作用HTTP协议的头部信息中的编码级参数,在jsp提供的封装HTTP对象后,可以直接在request中设置请求的字符编码级,在response中设置响应的字符编码级
解决post请求数据乱码
request.setCharacterEncoding("utf-8");
解决get请求数据乱码
修改tomcat服务器中的配制文件server.xml 中, 添加useBodyEncodingForURI="true"属性 --->URI统一资源标识符 URL统一资源定位符
<Connector connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
useBodyEncodingForURI="true"/>
解决get 和 post 请求数据乱码 但并不是万能的
new String (paramValue.getBytes("iso-8859-1"), "utf-8");
响应设置字符编码及
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
如果后期学习了过滤器,可以直接写一个编码级过滤器,把request和response的字符编码处理全部写好,就可以通用啦
如果最后学习了spring 和 spring-mvc,可以直接在web.xml中配置过滤即可,需要web spring-mvc 的支持
JAVA的字符编码及问题的更多相关文章
- Java基础——字符编码
一.ASII 美国(国家)信息交换标准(代)码. 计算机中只有数字,一切都是用数字表示,屏幕上显示的一个一个的字符也不例外. 一个字节可表示的数字为0-255,足以显示键盘上的所有的字符 例如. a ...
- java基础---->java中字符编码问题(一)
这里面对java中的字符编码做一个总结,毕竟在项目中会经常遇到这个问题.爱不爱都可以,我怎样都依你,连借口我都帮你寻. 文件的编码格式 一.关于中文的二进制字节问题 public static Str ...
- JAVA支持字符编码读取文件
文件操作,在java中很常用,对于存在特定编码的文件,则需要根据字符编码进行读取,要不容易出现乱码 /** * 读取文件 * @param filePath 文件路径 */ public static ...
- Java之字符编码和字符集
什么是字符编码 计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字.英文.标点符号.汉字等字符是二进制数转换之后的结果.按照某种规则,将字符存储到计算机中,称为编码 .反之,将存储在计算 ...
- Java:字符编码
常用的字符编码 UFT-8 ISO-8859-1 GBK/GBK2312
- Java中字符编码和字符串所占字节数 .
首 先,java中的一个char是2个字节.java采用unicode,2个字节来表示一个字符,这点与C语言中不同,C语言中采用ASCII,在大多数 系统中,一个char通常占1个字节,但是在0~12 ...
- Java IO4:字符编码
前言 字符编码,这本不属于IO的内容,但字节流之后写的应该是字符流,既然是字符流,那就涉及一个"字符编码的"问题,考虑到字符编码不仅仅是在IO这块,Java中很多场景都涉及到这个概 ...
- 基础篇:JAVA资源之IO、字符编码、URL和Spring.Resource
目录 1 JAVA.IO字节流 2 JAVA.IO字符流 3 乱码问题和字符流 4 字符集和字符编码的概念区分 5 URI概念的简单介绍 6 URL概念及与URL的区别 7 Spring.Resour ...
- 深入理解Python的字符编码
原文:http://lukejin.iteye.com/blog/598303 在处理中文的时候,我们有时候会碰到中文乱码的问题. 究其根本原因是正确的字节序列按照错误的编码方式解码成字符 或者正确的 ...
随机推荐
- 你的MongoDB Redis设置用户名密码了吗?看看shodan这款邪恶的搜索引擎吧!~
早上看新闻的时候看到了个醒目的新闻 开源中国:MongoDB 赎金事件持续发酵,究竟是谁之过? 博客园:MongoDB数据库勒索,中国受害者数量超乎你的想象,SOS! 1. 由于自己之前做过的项目,R ...
- [ios] 微信订阅号: ios博文精选
晚上下班后时间充裕,平时要么看电视剧,要么玩游戏 感觉浪费时间. 最后决定自己也搞一个微信订阅号分享技术方面的东西,也提升自己. 如果大家也是一样情况,欢迎大家关注我的订阅号. 微信订阅号: ios ...
- python绝技 — 使用PyGeoIP关联IP地址和物理位置
准备工作 要关联IP与物理位置,我们需要有一个包含这样对应关系的数据库. 我们可以使用开源数据库GeoLiteCity,它能够较为准确地把IP地址与所在城市关联起来 下载地址:http://dev.m ...
- GourdScan & sqlmapapi
0x01 Windows下配置GourdScan 0x0101 GourdScan项目地址:https://github.com/code-scan/GourdScan PHP环境 + ...
- 如何得到AdoConnection.execute(sqlstr)执行的返回结果
如何得到AdoConnection.execute(sqlstr)执行的返回结果? 1: TAdoConnection.execute有procedure.function的两种定义,function ...
- OSI模型第二层数据链路层-STP协议
1.stp协议的由来. 在二层网络中,交换机起到了很重要的作用,如果有一台交换机出现故障会影响网络的使用,为了避免存在单点故障,在实际的二层链路中会采用链路冗余,也就是采用交换设备之间多条联络连接,即 ...
- Mac下安装node.js和webpack
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #393939 } p.p2 ...
- Logstash使用grok过滤nginx日志(二)
在生产环境中,nginx日志格式往往使用的是自定义的格式,我们需要把logstash中的message结构化后再存储,方便kibana的搜索和统计,因此需要对message进行解析. 本文采用grok ...
- Exchange 2010 实用小技巧
#Exchange安装必须开启防火墙服务 #批量建用户: for /f "tokens=1,2,3,4,5,6,7 delims=," %a in (c:\users.csv) ...
- cos距离与欧式距离
1. 欧氏距离(EuclideanDistance) 欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式. (1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离: ( ...