首页 / 知识
如何在Java中将字符串与UTF8字节数组之间来回转换
2023-04-16 22:12:00

How to convert Strings to and from UTF8 byte arrays in Java在Java中,我有一个String,我想将其编码为字节数组(采用UTF8或其他某种编码)。 另外,我有一个字节数组(采用某种已知的编码),我想将其转换为Java String。 我如何进行这些转换? 从String转换为byte []:
从byte []转换为String:
当然,您应该使用正确的编码名称。我的示例使用了两种最常见的编码US-ASCII和UTF-8。 这是一种避免每次转换都执行Charset查找的解决方案:
您可以直接通过String(byte [],String)构造函数和getBytes(String)方法进行转换。 Java通过Charset类公开可用的字符集。 JDK文档列出了支持的编码。 90%的时间,此类转换是在流上执行的,因此您将使用Reader / Writer类。您不会在任意字节流上使用String方法来进行增量解码-您可能会遇到涉及多字节字符的错误。 我的tomcat7实现接受的字符串为ISO-8859-1;尽管HTTP请求的内容类型。当尝试正确解释'é'等字符时,以下解决方案对我有用。
尝试将字符串解释为US-ASCII时,未正确解释字节信息。
或者,可以使用Apache Commons的StringUtils。
要么
如果您具有非标准字符集,则可以相应地使用getBytesUnchecked()或newString()。 为了将一系列字节解码为正常的字符串消息,我终于使用以下代码将其与UTF-8编码一起使用:
如果您使用的是7位ASCII或ISO-8859-1(一种非常常见的格式),则根本不必创建新的java.lang.String。只需将字节转换为char即可,其性能要高得多: 完整的工作示例:
如果您不使用扩展字符,例如?,?,?,?,?,ê,并且可以确保仅传输的值是前128个Unicode字符,那么此代码也适用于UTF-8和扩展ASCII (如cp-1252)。
我无法发表评论,但不想启动新线程。但这是行不通的。一个简单的往返:
在编码之前和之后,我需要b []相同的数组,而不是(该数组引用第一个答案)。
太晚了,但我刚遇到这个问题,这是我的解决办法:
|
最新内容
相关内容
linux输出字符串命令?
linux输出字符串命令?,标准,基础,字符串,资料,简介,商业,数字,系统,命令,汉字,Linux中c语言中汉字字符串的输出引入标准输入输出库:sdtio.h。定linux命令删除字符串?
linux命令删除字符串?,软件,系统,代码,名称,通用,连续,字符,字符串,命令,空格,类似trim命令,去除字符串中的冒号,有这个简单的命令吗?1、=trimlinux转换字符集命令?
linux转换字符集命令?,系统,名称,时间,位置,服务,文件,字符集,命令,格式,以下,如何在Linux系统实现字符编码转换首先我们打开系统并使用root账linux设置编码命令?
linux设置编码命令?,系统,数据,发展,文件,字符集,命令,数据库,以下,终端,大小写,Linux如何使用enca查看文件编码并转换在Linux中查看文件编码字符串查找命令linux?
字符串查找命令linux?,系统,字符串,工具,信息,文件,命令,字符,选项,文本,范本,如何在Linux下查找文件内容包含某个特定字符串的文件在linux中glinux命令替换字符串?
linux命令替换字符串?,字符串,文件,批量,首次,数据,命令,内容,方法,用字,结尾,linux下批量查询文件内容字符串并替换一)通过vi编辑器来替换。vilinux拼接字符串命令?
linux拼接字符串命令?,系统,工作,代码,工具,名称,信息,地址,时间,数据,命令,linux中用shell时奇怪的字符串拼接和时间计算问题如果想要在变量linux地址转换命令是?
linux地址转换命令是?,地址,系统,代码,密码,网络,信息,服务,电脑,设备,报告,配置LINUX的IP命令1、(1)Ifconfig命令 第一种使用ifconfig命令配置linux命令看文件编码?
linux命令看文件编码?,状态,系统,文件,工具,名称,数据,命令,格式,汉字,以下,Linux如何使用enca查看文件编码并转换1、在Linux中查看文件编码可添加字符串命令linux?
添加字符串命令linux?,情况,名称,文件,位置,名字,地方,连续,信息,命令,内容,Linux下怎么输入连字符?末尾加个\这个符号就能两行。部分命令也linux命令时间转换?
linux命令时间转换?,时间,系统,命令,信息,国家,大陆,概念,终端,时区,时分,Linux系统的服务器时间要怎么进行修改输入这条命令系统时间会设置为linux命令查找字符串?
linux命令查找字符串?,工具,信息,命令,字符串,系统,工作,文件,范本,样式,文本,Linux中使用grep命令,查询多个字符串Linux grep命令用于查找文