导航:首页 > 编程语言 > 乱码转换java

乱码转换java

发布时间:2022-12-08 04:31:05

java中如何把类似%E6%8D%A2%E4%B9的编码转化成中文

java.net.URLDecoder.decode("%E6%8D%A2%E4%B9","UTF-8")
前一参数是编码串,后一参数是编码方式名称。
注:不一定有效,有时编码用的不是UTF-8,java支持的编码种类有上百种。用错了编码方式结果不会正确的。
比如用UTF-8试验了几个链接中的编码串是正确的,但上面的编码串试验了所有编码方式,都是乱码。
编码方式操作:
import java.nio.charset.Charset;
取得本机支持的编码方式名称数组:
String[] charsets=Charset.availableCharsets().keySet().toArray(new String[0]);
取得本机支持的编码方式数组:
Charset[] charsets=Charset.availableCharsets().keySet().toArray(new Charset[0]);
取得本机默认的编码方式名称:
Charset.defaultCharset().name()

补充:Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

Ⅱ java字节数组转换中文乱码,请求帮助

String str = new String(test,"UTF-16");
System.out.println(str);
打印结果:???流量已使用1000.00MB,剩余0.00MB;(均不含半年包、定向流量包)。超出流量0.00MB,超出流量(不含港澳台)按照约定资费

Ⅲ java编码转换,get请求提交的中文参数乱码

.getRequest().getResponse().setContentType("text/json; charset=gbk");

Ⅳ 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[ ]数组才能正确被还原。

(4)乱码转换java扩展阅读

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))才是解码的过程。

Ⅳ java中文乱码怎么转换为汉字

我遇到过和你一样的错误,
在你编写String gb = new String(“数据库查处来的中文”.getBytes("ISO-8859-1"),"UTF-8");这句话的时候请注意一下“数据库查处来的中文”必须是ISO-8859-1编码,否则转换失败。
另外光数据库是UTF-8编码是不行的,请确定一下数据库建表的时候是否设置成UTF-8编码。
希望我的回答能够帮助你,谢谢

Ⅵ java转码后局部乱码问题

问题给你解决了,看代码

public class Test {
public static void main(String[] args) {

try {
String s = new String("中文测试局部乱码问题2011中文测试上传文件名乱码问题.txt".getBytes(),
"UTF-8");
System.out.println(s);
s = java.net.URLDecoder.decode(s, "utf-8"); //utf8转gbk
System.out.println(s);
Test convert = new Test();
byte[] fullByte = convert.gbk2utf8(s); //gbk转utf8
String fullStr = new String(fullByte, "UTF-8");
System.out.println("string from GBK to UTF-8 byte: " + fullStr);

} catch (Exception e) {
e.printStackTrace();
}
}

public byte[] gbk2utf8(String chenese) {
char c[] = chenese.toCharArray();
byte[] fullByte = new byte[3 * c.length];
for (int i = 0; i < c.length; i++) {
int m = (int) c[i];
String word = Integer.toBinaryString(m);

StringBuffer sb = new StringBuffer();
int len = 16 - word.length();

for (int j = 0; j < len; j++) {
sb.append("0");
}
sb.append(word);
sb.insert(0, "1110");
sb.insert(8, "10");
sb.insert(16, "10");

String s1 = sb.substring(0, 8);
String s2 = sb.substring(8, 16);
String s3 = sb.substring(16);

byte b0 = Integer.valueOf(s1, 2).byteValue();
byte b1 = Integer.valueOf(s2, 2).byteValue();
byte b2 = Integer.valueOf(s3, 2).byteValue();
byte[] bf = new byte[3];
bf[0] = b0;
fullByte[i * 3] = bf[0];
bf[1] = b1;
fullByte[i * 3 + 1] = bf[1];
bf[2] = b2;
fullByte[i * 3 + 2] = bf[2];

}
return fullByte;
}
}

结果:
中文测试局部乱码问题2011中文测试上传文件名乱码问题.txt
中文测试局部乱码问题2011中文测试上传文件名乱码问题.txt
string from GBK to UTF-8 byte: 中文测试局部乱码问题2011中文测试上传文件名乱码问题.txt

Ⅶ Java编码时输入汉字出现乱码解决方法

java文件读取的时候有中文就很出现乱码,通常获取到的文件中通常都是“iso8859-1”格式,需要转换为“UTF-8”格式。
如:String str = new String(str.getByte("iso8859-1"),"UTF-8");进行下强制转换后在进行读取即可。
备注:通常格式有GBK、UTf-8、iso8859-1、GB2312,如果上面的强制转换不成功,依次进行这些格式的尝试,肯定是可以解决问题的。

Ⅷ Delphi程序,将中文转成utf-8 变成乱码后作为参数,请求到java程序里,怎么将乱码转成原来的值

Delphi 有2种编码,老版本用的是 Ansi 新版 是 unicode 。

你只需要在 java 里 把接收到的 utf-8 转 成 ansi 或 unicode 就好了。

Ⅸ java中字符乱码转化的问题

如果B接受编码方式也不能更改为和A一致,那么举个例子
A GBK,B UTF-8
B获取的内容乱码,
String s=request.getParameter("字段名");
这里s会乱码,可以做如下转换
byte[] bytes=s.getBytes(" B当前的编码格式");
String s=new String(bytes,"A的编码方式");
这个时候s就正常了

阅读全文

与乱码转换java相关的资料

热点内容
android智能家居蓝牙 浏览:646
pt螺纹编程 浏览:451
手机电音app哪个好 浏览:749
checksum命令 浏览:637
java创建xml文件 浏览:170
算命源码国际版 浏览:283
三菱模块化编程 浏览:718
控件读取文件源码 浏览:445
文件夹侧面目录标签怎么制作 浏览:232
做程序员学什么 浏览:320
pdfeditor教程 浏览:880
fortran把文件放入文件夹 浏览:709
程序员1年经验不敢投简历 浏览:481
如何看电脑的源码 浏览:897
找工作app软件哪个好 浏览:96
信息管理网站源码 浏览:439
小说app哪个好免费 浏览:224
域名在线加密 浏览:146
软件编程西安交大 浏览:453
是不是串货的奶粉查不到溯源码的 浏览:825