189 8069 5689

java代码改数组编码,java定义数字数组

java怎么将string转换成byte数组

思路:先定义字符串,再通过getBytes()方法进行转换数组就可以了。

创新互联公司是一家专业提供石家庄企业网站建设,专注与网站设计制作、网站制作、H5响应式网站、小程序制作等业务。10年已为石家庄众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

参考代码:

String s = "ZhiDao";//定义字符串

byte[] sb = s.getBytes();//把字符串转换成数组

String的getBytes()方法是得到一个系统默认的编码格式的字节数组。将一个String类型的字符串中包含的字符转换成byte类型并且存入一个byte[]数组中。

java中如何将字符串转换成字节数组

package com.sunjing.util;

import java.io.UnsupportedEncodingException;

/**

* 将Byte转换为String 或者将String转换为Byte

*

* @author Administrator

*

*/

public class ByteOrStringHelper {

/**

* 默认的字符集编码

* UTF-8 一个汉字占三个字节

*/

private static String CHAR_ENCODE = "UTF-8";

/**

* 设置全局的字符编码

* @param charEncode

*/

public static void configCharEncode(String charEncode){

CHAR_ENCODE = charEncode;

}

/**

* @param str 源字符串转换成字节数组的字符串

* @return

*/

public static byte[] StringToByte(String str) {

return StringToByte(str,CHAR_ENCODE);

}

/**

*

* @param srcObj 源字节数组转换成String的字节数组

* @return

*/

public static String ByteToString(byte[] srcObj) {

return ByteToString(srcObj,CHAR_ENCODE);

}

/**

* UTF-8 一个汉字占三个字节

* @param str 源字符串

* 转换成字节数组的字符串

* @return

*/

public static byte[] StringToByte(String str,String charEncode) {

byte[] destObj = null;

try {

if(null == str || str.trim().equals("")){

destObj = new byte[0];

return destObj;

}else{

destObj = str.getBytes(charEncode);

}

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return destObj;

}

/**

* @param srcObj 源字节数组转换成String的字节数组

* @return

*/

public static String ByteToString(byte[] srcObj,String charEncode) {

String destObj = null;

try {

destObj = new String(srcObj,charEncode);

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return destObj.replaceAll("\0"," ");

}

}

Java 修改编码格式的几种方式

主要分response的字节字符输出流和request接受中文参数doGet(),doPost()的设置四种.以及从服务器下载文件到浏览器的编码问题.

都是我学习java时总结的,希望能帮到你.

response的字节输出流:

// 设置浏览器默认打开的时候采用的字符集编码

response.setHeader("Content-Type", "text/html;charset=UTF-8");

// 设置中文转成字节数组的时候取出的编码

response.getOutputStream().write("如果不设置编码,这里就是乱码".getBytes("UTF-8"));

response的字符输出流:

//设置浏览器默认打开的时候采用的字符集编码,response的字符流的缓冲区的编码.

response.setContentType("text/html;charset=UTF-8");

response.getWriter().println("中文");

request的doGet()编码解决:

String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");

System.out.println("GET方式:"+name);

request的doPost()编码解决:

request.setCharacterEncoding("UTF-8");

String name = request.getParameter("name");

System.out.println("POST方式:"+name);

下载文件时浏览器编码问题:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 1.接收参数

String filename = new String(request.getParameter("filename").getBytes("ISO-8859-1"),"UTF-8");

System.out.println(filename);

// 2.完成文件下载:

// 2.1设置Content-Type头(获取文件的mime类型)

String type = this.getServletContext().getMimeType(filename);

//设置文件的mime类型

response.setHeader("Content-Type", type);

// 2.3web项目文件的绝对路径

String realPath = this.getServletContext().getRealPath("/download/"+filename);

// 获得浏览器的类型处理中文文件的乱码问题.(User-Agent:服务器收到客户端版本之类的一些信息)

String agent = request.getHeader("User-Agent");

System.out.println(agent);

if(agent.contains("Firefox")){

filename = base64EncodeFileName(filename);

}else{

//IE谷歌编码

filename = URLEncoder.encode(filename,"UTF-8");

}

// 2.2设置Content-Disposition头(固定写法,让浏览器必须下载,不能直接打开)

response.setHeader("Content-Disposition", "attachment;filename="+filename);

//获得文件

InputStream is = new FileInputStream(realPath);

// 获得response指定的方法获取输出流:如果用其他流是直接拷贝而不是下载

OutputStream os = response.getOutputStream();

int len = 0;

byte[] b = new byte[1024];

while((len = is.read(b))!= -1){

os.write(b, 0, len);

}

//响应流可以不关,在服务器做出相应后服务器会自动把response获得的流关闭

is.close();

}

//火狐

public static String base64EncodeFileName(String fileName) {

BASE64Encoder base64Encoder = new BASE64Encoder();

try {

return "=?UTF-8?B?"

+ new String(base64Encoder.encode(fileName

.getBytes("UTF-8"))) + "?=";

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

throw new RuntimeException(e);

}

}

java怎么把string转换成数组

转换为char数组的话,利用getChars方法,

public void getChars(int srcBegin,

int srcEnd,

char[] dst,

int dstBegin)

将字符从此字符串复制到目标字符数组。

要复制的第一个字符位于索引 srcBegin 处;要复制的最后一个字符位于索引 srcEnd-1

处(因此要复制的字符总数是 srcEnd-srcBegin)。要复制到 dst 子数组的字符从索引

dstBegin 处开始,并结束于索引:

dstbegin + (srcEnd-srcBegin) - 1

参数:

srcBegin - 字符串中要复制的第一个字符的索引。

srcEnd - 字符串中要复制的最后一个字符之后的索引。

dst - 目标数组。

dstBegin - 目标数组中的起始偏移量。

抛出:

IndexOutOfBoundsException

- 如果下列任何一项为 true:

srcBegin 为负。

srcBegin 大于 srcEnd

srcEnd 大于此字符串的长度

dstBegin 为负

dstBegin+(srcEnd-srcBegin) 大于

dst.length

转化为byte数组的话,

getBytes

public byte[] getBytes(String charsetName)

throws UnsupportedEncodingException

使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

当此字符串不能使用给定的字符集编码时,此方法的行为没有指定。如果需要对编码过程进行更多控制,则应该使用 CharsetEncoder

类。

参数:

charsetName - 受支持的 charset 名称

返回:

所得 byte 数组

如何给数组转换编码

JAVA有一个public String(byte bytes[], Charset charset)函数可以用指定字节数组和编码来构造字符串。一个public byte[] getBytes(Charset charset)函数把字符串按指定编码来得到字节数组。可以用这两个函数来实现编码转换。

java中如何修改字符串编码?

假设你的字符串的字节数组是buf,按照GBK解析这个字符串的方法就是如下

String

str=new

String(buf,0,buf.length,"GBK");

如果是utf-8编码,就把GBK换成utf-8即可


文章名称:java代码改数组编码,java定义数字数组
网页链接:http://cdxtjz.cn/article/dsscpgs.html

其他资讯