当前位置:首页 » 编程语言 » java字符串转码

java字符串转码

发布时间: 2025-07-04 02:01:47

java怎么把utf-8的字符串转换为gb2312格式

Java中字符串转码,根据实际运用的环境有以下三种方式

1、使用Java.lang.String

这是最常用的方法,先用对应编码获取字节,然后重新构造新编码,示例代码如下:

Strings="清山";
byte[]b=s.getBytes("utf-8");//编码
Stringsa=newString(b,"gb2312");//解码:用什么字符集编码就用什么字符集解码

2、java.io.InputStreamReader/OutputStreamWriter:桥转换

读写文件的应用中,可以使用这种方式,直接在IO流构造中转换,示例代码如下:

InputStreamis=newFileInputStream("C:/项目进度跟踪.txt");//文件读取
InputStreamReaderisr=newInputStreamReader(is,"utf-8");//解码
OutputStreamos=newFileOutputStream("C:/项目进度跟踪_gb2312.txt");//文件输出
OutputStreamWriterosw=newOutputStreamWriter(os,"gb2312");//开始编码

3、java.nio.Charset

使用nio中的Charset转换字符,示例代码如下:

CharsetinSet=Charset.forName("utf-8");//解码字符集
CharsetoutSet=Charset.forName("gb2312");//编码字符集
CharsetDecoderde=inSet.newDecoder();//解码器
CharsetEncoderen=outSet.newEncoder();//编码

㈡ Java:为什么传输图片是常用base64字符串转码,而不是直接传输byte[]呢求解

先说说base64吧:对于图片来说,一个字节占八位,如果都换成byte[]的话,会很长,不便于传输,那么就把没6个字节来对应一个新的字符(如010011是19,对应base64编码的T),,所以这个目的主要是精简数据,便于传输;
另外常用的用途是:做不严格的加密用,比如常见的磁力链接,你懂的;因为它相对于严格加密省时省力,速度快,况且可恢复(如果用MD5就不行)

㈢ Java怎么将字符串转换为GB2312原编码

@Test
publicvoidtest333(){
Stringa="青白";
try{
byte[]b=a.getBytes("GB2312");
System.out.println(bytesToHexFun1(b));

}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
}
//将byte数组转成16进制字符串
(byte[]bytes){
char[]HEX_CHAR={'0','1','2','3','4','5',
'6','7','8','9','a','b','c','d','e','f'};
//一个byte为8位,可用两个十六进制位标识
char[]buf=newchar[bytes.length*2];
inta=0;
intindex=0;
for(byteb:bytes){//使用除与取余进行转换
if(b<0){
a=256+b;
}else{
a=b;
}
buf[index++]=HEX_CHAR[a/16];
buf[index++]=HEX_CHAR[a%16];
}
returnnewString(buf);
}

中心思想就是先转成GB2312的byte数组,再转成16进制就可以了。

㈣ java怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串

通过JDK1.6知道String类中getBytes(”编码“)方法可以讲一个数用指定的编码转成一个字节数组,String中通过指定的 charset解码指定的 byte 数组,构造一个新的String。代码如下:

try{

String s = "java学习";

System.out.println(s);

String result = new String(s.getBytes("GB2312"),"iso-8859-1");

System.out.println(s);

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

(4)java字符串转码扩展阅读:

getBytes() 方法有两种形式:

1、getBytes(String charsetName):使用指定的字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

2、getBytes():使用平台的默认字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

参考资料:

网络-getBytes()

热点内容
蒲公英路由器服务器端ip 发布:2025-07-04 15:20:30 浏览:678
python学习中 发布:2025-07-04 15:20:26 浏览:257
linux查看cuda版本 发布:2025-07-04 15:15:49 浏览:44
反编译浏览器 发布:2025-07-04 15:15:45 浏览:453
java直播网站源码 发布:2025-07-04 14:46:35 浏览:170
安卓应用市场消费记录怎么删除 发布:2025-07-04 14:39:47 浏览:31
知道一个服务器的ip地址 发布:2025-07-04 14:20:33 浏览:598
苹果7锁屏密码怎么改 发布:2025-07-04 14:04:44 浏览:711
P三零是什么配置 发布:2025-07-04 13:58:41 浏览:362
哪个安卓机有长方形home键 发布:2025-07-04 13:43:58 浏览:861