unicode字符串解析

博客探讨了在HTTP接口接收时如何处理接收方通过Unicode编码传递汉字的情况。介绍了使用Fastjson库自动转换Unicode字符串的功能,指出JSON.parseObject(String)等方法能够实现这一转换。还简单讨论了Unicode码的原理,并提供了自造轮子的简单实现,即通过正则表达式匹配和替换的方法。
摘要由CSDN通过智能技术生成

现象和答案

在http接口接收时,很多接口提供方都喜欢把汉字通过unicode的方式传过来,而数字和字母保持不变,就像这样。

{“Content”:"[reply]CocoWu892[/reply]\n\u6c9f\u901a\u662f\u6700\u91cd\u8981\u7684\u6280\u80fd\u4e4b\u4e00"}

这里就必须涉及到一个带unicode字符串转成正常字符串的过程。网上关于这块问题有很多博客,大部分都是一样的,实现思路是在字符串中找到\n[0-9]{4}字符串,并将匹配到的四位数字通过Integer.parseInt()来转成字符串。我认为一定有开源jar完成了这个工作,我们应该不用自造轮子。经过寻找,发现fastjson能自动的转换unicode字符串。

fastjson,已经实现unicode字符串解析,JSON.parseObject(String)等方法都可以。

实现原理,fastjson实现过程,自造轮子

接下来内容是具体实现,实现方式原理和fastjson的实现方式。

我们先了解一下unicode码,unicode码\u8981\u是标示,告诉你这是一个unicode码,8981是码的内容,是16位数字,根据8981在unicode码库中找到对应字符。\在string中的字符实际是\\8981

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值