Unicode可以用来干什么

本文探讨了Unicode编码在处理多语言字符时的作用,解释了Unicode如何通过双字节表示字符,避免编码误差。作者建议在国际化项目中使用Unicode以确保字符正确显示,并分享了个人经验与交流方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


title: Unicode可以用来干什么
date: 2018-12-24 03:33:00
tags:

  • Java
    category:
  • Java
    description: Unicode可以用来干什么

前言

在接到唯一可接口的时候,莫名其妙的将本来好好的中文搞成了乱码,气的我啊,一直找问题,找不到。后来发现日志中的数据变成了一堆类似乱码的,形状,亏我见多识广哈,一眼就知道是Uriencode编码。那么为什么对方要将返回值设置为这种编码呢。

Unicode是什么

Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。 Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。 [1]


Unicode 标准为全球商业领域中广泛使用的大部分字符定义了一个单一编码方案。所有的计算机都用单一的 Unicode 标准 Unicode 数据中的位模式一致地翻译成字符。这保证了同一个位模式在所有的计算机上总是转换成同一个字符。数据可以随意地从一个数据库或计算机传送到另一个数据库或计算机,而不用担心接收系统是否会错误地翻译位模式。
所以明白了吧,为了跨语言,跨平台,Unicode产生了
Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。
Stirng.length()

    String类的length()方法是以unicode统一字符集代码单元
    换言之就是char的个数为来统计的。
    因为java一个char类型可以存放一个汉字(2个字节)。
    所以使用subString等截取出来的子串都不会出现半个汉字的情况,

猜想

以后面对国际化开发的时候,我们还是使用Unicode进行编码下给返回结果,这样的话,就不会因为字符编码造成一些字符格式误差了

1、项目中的使用测试


package com.duodian.youhui.admin.utils;

/**
 * @Desc: 订单接口的时候 9月21日 出现返回接口为Unicode编码的情况,我开始添加的
 *
{"msg":"\u64cd\u4f5c\u6210\u529f","error":0,"data":null}
{"msg":"操作成功","error":0,"data":null}

 * @Author HealerJean
 * @Date 2018/9/21  下午7:19.
 */
public class UnicodeUtil {
   
   




    /**
     * 不管是中文还是unicode编码,不管里面夹杂着什么都输出 正确的中文
     * @param unicodeStr
     * @return
     */
    public static String decode(String unicodeStr) {
   
   
        if (unicodeStr == null) {
   
   
            return null;
        }
        StringBuffer retBuf = new StringBuffer();
        int maxLoop = unicodeStr.length();
        for (int i = 0; i < maxLoop; i++) {
   
   
            if (unicodeStr.charAt(i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值