「乱码对照java」什么是乱码
今天给各位分享乱码对照java的知识,其中也会对什么是乱码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java怎么乱码了?
- 2、java中文乱码,能说下string.getBytes()和new String()转码是,具体点。
- 3、java中文乱码
- 4、JAVA 乱码 根本原因是什么
- 5、[Java]如何解决乱码问题
- 6、java代码中文乱码怎么解决方法
java怎么乱码了?
大概的思路就是重新编码为gbk或者gb2312,分两种情况
一是get和post形式
二是AJax 形式
第一种:GET和POST,取决于你的页面编码,如果你的页面编码为iso8859_1
使用:String str= new String(req.getParameter("str").toString().getBytes("iso8859_1"), "GBK");
或者 String str= new String(req.getParameter("str").toString().getBytes("iso8859_1"), "GB2312");
但是,这里要注意,必须保证你的页面编码也是iso8859_1的,因为,上面的代码的意思是先将你的字符串变为iso8859_1字节流,
然后再转化为GBK编码,如果你页面传过来的编码是utf-8,那么按照上面的方法就会出现:???乱码
你页面是utf-8的,就要使用如下编码:
String str= new String(req.getParameter("str").toString().getBytes("utf-8"), "GBK");
或者 String str= new String(req.getParameter("str").toString().getBytes("utf-8"), "GB2312");
总之get post 原则很简单,页面什么编码就转化什么字节流转化编码
第二:Ajax传值
这个比较麻烦,据测试,不同的浏览器有不同的对中文编码,怎么办呢?
我们可以采用js的encodeURI()进行统一的编码,然后在后台进行统一的解码
对应的java解码代码:
str= java.net.URLDecoder.decode(str, "UTF-8");
当然,因为他是utf-8编码,所以也可以采用第一种get post 介绍的方法解码(据测试,用 String(req.getParameter("str").toString().getBytes("utf-8"), "GB2312")解码js的encodeURI()时,会出现乱码,所以还是老老实实的使用java.net.URLDecoder.decode(str, "UTF-8");)
不好意思,刚刚查了资料,上面讲的Get方式有错:
Tomcat对于GET请求并不会考虑使用request.setCharacterEncoding方法设置的编码,而会永远使用iso-8859-1编码,而这位朋友使用的正好是GET请求,因此,tomcat将会使用iso-8859-1将提交的字节转换成字符串。
所以,对于使用get方式传值的时候,统一使用String str= new String(req.getParameter("str").toString().getBytes("iso8859_1"), "GBK");当然,前提是你服务器是tomcat。
java中文乱码,能说下string.getBytes()和new String()转码是,具体点。
1、Java中,【String.getBytes(String decode)】的方法,会根据指定的decode,编码返回某字符串在该编码下的byte数组表示,例如:
byte[] b_gbk = "中".getBytes("GBK");
byte[] b_utf8 = "中".getBytes("UTF-8");
byte[] b_iso88591 = "中".getBytes("ISO8859-1")
上面三行代码表示:分别返回“中”这个汉字在GBK、UTF-8和ISO8859-1编码下的byte数组表示,此时b_gbk的长度为2,b_utf8的长度为3,b_iso88591的长度为1。
2、而通过【new String(byte[], decode)】的方式来还原这个“中”字时,实际是使用decode指定的编码来将byte[ ]解析成字符串,例如:
String s_gbk = new String(b_gbk,"GBK");
String s_utf8 = new String(b_utf8,"UTF-8");
String s_iso88591 = new String(b_iso88591,"ISO8859-1");
s_gbk和s_utf8都是“中”,而只有s_iso88591是一个不认识 的字符,因为ISO8859-1编码的编码表中,根本就没有包含汉字字符,当然也就无法通过"中".getBytes("ISO8859-1")。
因此,通过【String.getBytes(String decode)】方法来得到byte[ ]时,要确定decode的编码表中确实存在String表示的码值,这样得到的byte[ ]数组才能正确被还原。
扩展资料
java中文编码避免乱码
1、为了让中文字符适应某些特殊要求(如http header头要求其内容必须为iso8859-1编码),可能会通过将中文字符按照字节方式来编码的情况,比如:
String s_iso88591 = new String("中".getBytes("UTF-8"),"ISO8859-1")
2、上述例子中的s_iso8859-1字符串实际是三个在 ISO8859-1中的字符,在将这些字符传递到目的地后,目的地程序再通过相反的方式:
String s_utf8 = new String(s_iso88591.getBytes("ISO8859-1"),"UTF-8")
来得到正确的中文汉字。这样就既保证了遵守协 议规定、也支持中文。
3、String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示这里是encode ,not decode,从字符串到字节数组是编码的过程,从字节数组到字符串(即 new String(byte[] , charsetname))才是解码的过程。
参考资料:百度百科-UTF-8
java中文乱码
页面用
%@ page contentType="text/html;charset=GB18030" language="java" %
再设置一个filter拦截请求.
request.setCharacterEncoding("GB18030");
response.setCharacterEncoding("GB18030");
这样处理一下试试,怀疑你没有指定字符集.
如果不是处理多语言,就是在一个页面上显示多个国家的语言,不要用UTF-8,
它只是通用一些,用它常会遇到不支持的字符问题.
1楼的,你从那里看到整个Java IO默认会以UTF-8编码输出?
IO底层都是调用平台的.读写,所以字符是不定的, PrintWriter 多数情况就是ISO-8859-1
或者向PrintWriter传入其他编码的OutputStream
这个怎么传?
1.是没有set方法
2就是有你能传吗?传进去了,还是response的这个流吗?
win默认的gbk编码
.....这都是什么呀,小鬼子系统也用GBK?再一个GBK 是汉字编码标准
也不是编码名称啊.
你说的基本就没有对的.
JAVA 乱码 根本原因是什么
java出现乱码的原因是
.java 文件中的编码格式和命令提示符的指令不一致导致的
比如.java 使用的是utf-8,windows环境下命令提示符编码是gbk,在使用javac 命令进行对.java文件进行编译的时候,.java文件中的中文字符就会出现 乱码.
出现这样的情况,处理方式是通过现在编译编码-encoding 处理
javac -encoding utf-8 Test.java
[Java]如何解决乱码问题
乱码的话,分为几个位置的乱码。
一、是JSP页面乱码问题,
解决方式:%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%
二、后台向前端传输字符串的的乱码
解决方式: response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
三、Ajax异步传参时的乱码问题
解决方法:contentType:"application/x-www-form-urlencoded; charset=utf-8",
四、myEclips或Eclips打开文件时乱码
解决方法:右键该文件-porperties-把该文件调为UTF-8的格式
纯手写,请给采纳
java代码中文乱码怎么解决方法
解决乱码问题:可以修改eclipse里的编码格式来解决乱码问题:
1、window-- Preference
2、点击General--Workspace,在右面的窗体找到“Text file encoding”,就可以修改编码格式了
关于乱码对照java和什么是乱码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-25,除非注明,否则均为
原创文章,转载请注明出处。