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 在处理中文的时候,我们有时候会碰到中文乱码的问题. 究其根本原因是正确的字节序列按照错误的编码方式解码成字符 或者正确的 ...
随机推荐
- vsftpd.conf 详解与实例配置
#################匿名权限控制############### anonymous_enable=YES #是否启用匿名用户 no_anon_password=YES #匿名用 ...
- 如何发布一个自定义Node.js模块到NPM(详细步骤)
咱们闲话不多说,直接开始! 由于我从没有使用过MAC,所以我不保证本文中介绍的操作与MAC一致. 文章开始我先假定各位已经在window全局安装了Node.js,下面开始进行详细步骤介绍: 本文本着, ...
- 计算字符串中每种字符出现的次数[Dictionary<char,int>泛型集合用法]
有一道经典的面试题: 统计 welcome to china中每个字符出现的次数,不考虑大小写. 第一个出现在脑海里的想法是: 1. 将字字符串转换成 char数组: 2. 用 for循环遍 ...
- Nexpose
下载: https://www.rapid7.com/products/nexpose/nexpose-enterprise-trial-thank-you.jsp注册: https://www.ra ...
- Elasticsearch安装ik中文分词插件(四)
一.IK简介 IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包.从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本.最初,它是以开源项目Lu ...
- [JS]省市区数据及方法调用
调用方法: function GetProvinceByid(id) { if (id == null || id == undefined || id == "") return ...
- MariaDB数据解压版安装(10.0.16)
官网下载地址:https://downloads.mariadb.org/ (自己选择版本下载) 在windows 7 下安装 1.下载到解压版安装文件mariadb-10.0.16-win32 ...
- JTable
final Table table = new Table(parent, SWT.NONE | SWT.FULL_SELECTION); final GridData gd = new GridDa ...
- POJ 1952 BUY LOW, BUY LOWER
$dp$. 一开始想了一个$dp$做法,$dp[i][j]$表示前$i$个数字,下降序列长度为$j$的方案数为$dp[i][j]$,这样做需要先离散化然后用树状数组优化,空间复杂度为${n^2}$,时 ...
- [HMLY]5.模仿喜马拉雅 FM
项目介绍: 文:HansRove(github)XiMaLaYa-by-HansRove- 仿做喜马拉雅, 对AVFoundation框架的一次尝试 软件环境: iOS9.1硬件环境: Mac O ...