文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java中如何对字符串进行utf-8编码

2023-05-15 15:03

关注

java对字符串进行utf-8编码

我们在调用第三方 API 时,常常会被要求用到路径变量,而路径变量一般都是 utf-8 编码的,因此需要对传入的字符串参数进行 utf-8 编码处理。

本文提供一种使用 URLEncoder 库进行编码的方式。

废话少说,上代码。

// 使用 URLEncoder 库对字符串进行 utf-8 编码
import java.net.URLEncoder;

public String encodePathVariable(String pathVariable) {
   String ret = "default";
    try {
        ret = URLEncoder.encode(pathVariable, "utf-8");
        System.out.println(pathVariable + " : " + ret);
    }catch(Exception e) {
        System.out.println(e);
    }
    return ret;
}

java按照字节截取字符串-utf-8

如何按照utf-8的字节截取字符串呢?

utf-8,中文一个汉字是三个字节,一个字母或特殊符号是1个字节。

String类没有提供按字节截取字符串的方法,

StringUtil提供了截取的方法,但是默认是8858-1的,而且不能指定编码格式

但是给了我们思路,我们就将这段代码粘贴出来,将后面的编码格式给改成utf-8的

建个测试方法测试下

还是有些问题,截取3个字节时,正好把中字截取出来了,4个字节时有乱码,5个字节时,还有乱码,6个字节时,打印了两个字节,正好两个中文汉字。也就是说,本身是三个字节的文字,我们只取了它的1个字节,所以识别不出来出现了乱码!

经过反复测试,乱码就是�这种符号,别的符号没测出来,应该也没啥别的符号,我们就将这种符号截取掉就行了。

最后测试的代码

乱码没有了,而且准确率还高,因为字符串的情况挺复杂的,什么都有,文字,标点,特殊符号,穿插其中,字节也不一样,网上看了很多例子,都是他们自己编写的算法啥的,用了之后,错误率挺高的。


public static String getFromCompressedUnicode(String string,int offset,int len) throws UnsupportedEncodeingException{
byte[] bytes = string.getBytes("utf-8");
int len_to_use = Math.min(len,bytes.length - offset);
 return new String(bytes,offset,len_to_use,"utf-8").replaceAll("�","")
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯