字符串到字节数组和字节数组到字符串的转换(编码和解码问题)

/*

* String(byte[] bytes, String charsetName):通过指定的字符集解码字节数组

* byte[] getBytes(String charsetName):使用指定的字符集合把字符串编码为字节数组

*

* 编码:把看得懂的变成看不懂的

* String -- byte[]

*

* 解码:把看不懂的变成看得懂的

* byte[] -- String

*

* 举例:谍战片(发电报,接电报)

*

* 码表:小本子

*         字符    数值

*

* 要发送一段文字:

*         今天晚上在老地方见

*

*         发送端:今 -- 数值 -- 二进制 -- 发出去

*         接收端:接收 -- 二进制 -- 十进制 -- 数值 -- 字符 -- 今

*

*         今天晚上在老地方见

*

* 编码问题简单,只要编码解码的格式是一致的。

*/

package io.编码解码;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;
public class StringDemo {
	public static void main(String[] args) throws UnsupportedEncodingException {
		String s = "你好";
		//String --byte[]
//		byte[] bys = s.getBytes();//[-28, -67, -96, -27, -91, -67]
//		byte[] bys = s.getBytes("GBK");//[-60, -29, -70, -61]
		byte[] bys = s.getBytes("UTF-8");//[-28, -67, -96, -27, -91, -67]
		//所以默认的编码是UTF-8
		System.out.println("字符串到字节数组:"+Arrays.toString(bys));

		//解码
		//byte[] ---String
//		String ss = new String(bys);//你好
//		String ss = new String(bys,"GBK");//浣犲ソ
		String ss = new String(bys,"UTF-8");//你好
		//所以m默认的解码是UTF-8
		System.out.println("字节数组到字符串:"+ss);
	}
}
时间: 2024-08-10 10:21:36

字符串到字节数组和字节数组到字符串的转换(编码和解码问题)的相关文章

java _io_图片到内存(字节数组),字节数组到文件,练习文件流和字节数组流

//图片读取到字节数组中,字节数组写出到文件 public class test{ public static void main(String[]args) { String path="C:/Users/10853/eclipse-workspace/hell/linux学习路线.png"; byte[] data=toByteArray(path); //图片不能直接到字节数组中,is.read()返回的是int类型的大小,new String是解码 //需要写入字节数组(内存)

C#中字符数组,字节数组和string之间的转化(转)

原文链接:http://hi.baidu.com/endyli/item/7bf074945de35e1f934f41fe 来源: NDC(NetworkDiskClient)的界面和后台程序之间用Socket通信,发送命令. 环境:界面:C# winform 后台:Vc++,消息通知 网络通信,C#是通过网络字节流进行传输的,传输内容是有报文头的Protobuf.Net消息.报文头是struct结构体,先转化成 byte[],protobuf消息就先转换为内存流,再stream.ToArray

获取一张图片的字节数组及字节数组的合并

public Byte[] Tupian() 获取一张图片的字节数组        {            FileStream fs = new FileStream(@"G:\smartrt\bin\Debug\Data\tpl\111.jpg", FileMode.Open);             int filelength = 0;             filelength=(int) fs.Length; //获得文件长度             Byte[] f

字符串、字节数组、流之间的相互转换以及文件MD5的计算

1 using System; 2 using System.IO; 3 using System.Security.Cryptography; 4 using System.Text; 5 6 namespace myMethod 7 { 8 class lgs 9 { 10 static void Main() 11 { 12 Console.ReadKey(); 13 } 14 15 /// <summary> 16 /// 使用不同的编码格式将 字符串 → 字节数组 17 /// &l

String.getBytes()和String.tocharArray(),字节数组和字符数组的区别

String.getBytes()是将字符串转化为一个字节数组.而String.toCharArray()是将一个字符串转化为一个字符数组. [例如] byte bys[] ="国庆60周年".getBytes(); char chs[]="国庆60周年".toCharArray(); [那么字节数组和字符数组有什么区别呢?] 字节输入流和输出流的read和write方法使用字节数组读写数据,即以字节为基本单文处理数据.因此,字节流不能很好地操作Unicode字符,

加密解密基础问题:字节数组和字符串的相互转换

在加密时,一般加密算法和hash算法,它们操作的都是字节数组,对字节数组按照加密算法进行各种变换,运算,得到的结果也是字节数组.而我们一般是要求对字符串进行加密,所以就涉及到字符串String到 byte[] 的转换,这个很简单.同时在解密时,也涉及到字节数组byte[] 到 String 的转换.另外在对用户的密码进行hash加密之后,最终是要保存在数据库中,所以加密得到 byte[] 也要转换到 String. 1. String 到 byte[] 的转换很简单,因为String类有直接的函

C#字节数组转换成字符串

C#字节数组转换成字符串 如果还想从 System.String 类中找到方法进行字符串和字节数组之间的转换,恐怕你会失望了.为了进行这样的转换,我们不得不借助另一个类:System.Text.Encoding.该类提供了 bye[] GetBytes(string) 方法将字符串转换成字节数组,还提供了 string GetString(byte[]) 方法将C#字节数组转换成字符串. System.Text.Encoding 类似乎没有可用的构造函数,但我们可以找到几个默认的 Encodin

加密解密基础问题:字节数组和(16进制)字符串的相互转换(转)

在加密时,一般加密算法和hash算法,它们操作的都是字节数组,对字节数组按照加密算法进行各种变换,运算,得到的结果也是字节数组.而我们一般是要求对字符串进行加密,所以就涉及到字符串String到 byte[] 的转换,这个很简单.同时在解密时,也涉及到字节数组byte[] 到 String 的转换.另外在对用户的密码进行hash加密之后,最终是要保存在数据库中,所以加密得到 byte[] 也要转换到 String. 1. String 到 byte[] 的转换很简单,因为String类有直接的函

C# 16进制与字符串、字节数组之间的转换

1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2)); //十进制转八进制 Console.WriteLine("十进制166的八进制表示: "+Convert.ToString(166, 8)); //十进制转十六进制 Console.WriteLine("十进制166的十六进制表示: "+Con