Java怎么实现UTF-8编码与解码

发布时间:2023-04-18 10:26:57 作者:iii
来源:亿速云 阅读:123

这篇文章主要介绍了Java怎么实现UTF-8编码与解码的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java怎么实现UTF-8编码与解码文章都会有所收获,下面我们一起来看看吧。

Java实现UTF-8编码与解码

Java代码如下:

import java.net.URLDecoder;
import java.net.URLEncoder;

//URLDecoder.decode("%E5%A4%A9%E6%B4%A5","UTF-8");
public class URLDecoderTesT {
    public static void main(String[] args) throws Exception {
 
        // 将application/x-www-form-urlencoded字符串转换成普通字符串
        // 其中的字符串直接从上图所示窗口复制过来,chrome 默认用 UTF-8 字符集进行编码,所以也应该用对应的字符集解码
        System.out.println("采用UTF-8字符集进行解码:");
        String keyWord = URLDecoder.decode("%E9%99%88", "UTF-8");
        System.out.println(keyWord);
//        System.out.println("\n 采用GBK字符集进行解码:");
//        System.out.println(URLDecoder.decode("%E5%A4%A9%E6%B4%A5%E5%A4%A7%E5%AD%A6+Rico", "GBK"));
// 
//        // 将普通字符串转换成application/x-www-form-urlencoded字符串
        System.out.println("\n 采用utf-8字符集:");
        String urlStr = URLEncoder.encode("../../../../../../../etc/passwd", "utf-8");
        System.out.println(urlStr);
//        System.out.println("\n 采用GBK字符集:");
//        String urlStr2 = URLEncoder.encode("天津大学", "GBK");
//        System.out.println(urlStr2);
    }
}

Java怎么实现UTF-8编码与解码

使用UTF-8或GBK编码后还是乱码的问题

大家在开发中可能经常遇到将String字符串转为byte[]的场景,为了避免中文乱码,一般指定字符集为GBK或UTF-8来进行编码以及解码,但是如果使用不当,同样会造成字符集乱码问题。

主要原因是进行编码以及解码的字符集不一致导致

所以,在解决字符集乱码问题时一般情况下会显示指定编码和解码字符集。

// 编码
byte[] bytes = “中文”.getBytes(“UTF-8”);
// 解码
new String(bytes,“UTF-8”);

不显式指定时一般会使用默认字符集进行编码或解码,此时需要确保使用的获取默认字符集的方法一样。

// 编码 获取默认字符集方法为:Charset.defaultCharset().name()
byte[] bytes =“中文”.getBytes();
// 解码 获取默认字符集方法为:Charset.defaultCharset().name()
new String(bytes);

以下列出两种获取默认字符集的方法及区别:

Charset.defaultCharset().name();
System.getProperty("file.encoding")

两者的区别是

**Charset.defaultCharset()**通过在JVM启动时通过-Dfile.encoding=UTF-8参数来进行设置。此方式只支持在jvm启动时设置一次,不支持在运行期修改。

System.getProperty(“file.encoding”) 获取的是操作系统的编码,可以通过System.setProperty("file.encoding","UTF-8")进行修改(此修改不会影响操作系统,重启jvm后丢失),支持在运行期修改。 

关于“Java怎么实现UTF-8编码与解码”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java怎么实现UTF-8编码与解码”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. Java中throw和throws关键字有什么区别
  2. 怎么用Java写一个猜拳小游戏

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java utf-8

上一篇:import sklearn安装报错怎么解决

下一篇:java SpringBoot整合MyBatisPlus的方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》