用java如何把unicode码转成汉字?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java如何把unicode码转成汉字?相关的知识,希望对你有一定的参考价值。

用java怎么把“\u4fdd”码转成汉字?
程序怎么写的?

java中将unicode码转换成汉字的方式是直接使用string类型,打印即可:

String ascii="\\u4f01\\u4e1a";//这两个unicode码就是企业的
System.out.println(ascii);//打印出来

运行结果:

企业

Unicode只有一个字符集,中、日、韩的三种文字占用了Unicode中0x3000到0x9FFF的部分 Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, 比如汉字"经"的编码是0x7ECF,注意字符编码一般用十六进制来 表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制 就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制, 2的16次方等于65536,所以UCS-2最多能编码65536个字符。

参考技术A Java中字符和字符串都采用的是Unicode编码;汉字能够直接表示;不需要转换 可以测试一下public class Unicode2Chz
public static void main(String[] args)
String cc="\u4fdd";
System.out.print(cc);
直接输出:保
参考技术B System.out.println(new String("\u4fdd")) 参考技术C 如果是javaEE,可以用过滤器

服务器返回的数据将Unicode码转成汉字

当我们请求接口的时候,服务器会返回一些数据,当我们打印的时候就会发现,打印出来的是unicode码,不是汉字。

这时候需要我们自己手动处理一下,让打印的时候输出汉字的格式。

 

方法如下:

新增一个分类,在分类中,重写描述的方法,如下:

/**
 *  集合类型打log
 */
@implementation NSArray (log)

- (NSString *)description{
    return [self descriptionWithLocale:nil];
}

- (NSString *)descriptionWithLocale:(id)locale{
    NSMutableString * string = [[NSMutableString alloc]init];
    [string appendString:@"[
"];
    for (int i = 0; i < self.count; i++) {
        [string appendFormat:@"	第%d个 -- %@ 
",i,self[i] ];
    }
    [string stringByAppendingString:@"]
"];
    return string;
}


@end



@implementation NSDictionary (Log)

- (NSString *)jsonDescription {
    // 参考了此博客 https://www.jianshu.com/p/f14b4cb1435b .
    // NSString默认使用的是UTF-16,转出UTF-8就能打印了
    NSError * error = nil ;
    NSData *data = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:&error];
    
    if (error) {
        NSMutableString *strM = [NSMutableString stringWithString:@"{
"];
        [self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
            [strM appendFormat:@"	%@ = %@ ;
", key, obj];
        }];
        [strM appendString:@"}
"];
        return strM;
        
    }
    
    NSString *newString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    newString = [newString stringByReplacingOccurrencesOfString:@"\" withString:@""] ;
    return newString ;
}

- (NSString *)description{
    return [self descriptionWithLocale:nil];
}

- (NSString *)descriptionWithLocale:(id)locale
{

    if ([NSJSONSerialization isValidJSONObject:self]) {
        return [self jsonDescription];
    }
    // 原来的写法,格式上有点问题,但是转中文是没问题的
    NSMutableString *strM = [NSMutableString stringWithString:@"{
"];

    [self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
        [strM appendFormat:@"	%@ = %@ ;
", key, obj];
    }];

    [strM appendString:@"}
"];

    return strM;
}

@end

 

以上是关于用java如何把unicode码转成汉字?的主要内容,如果未能解决你的问题,请参考以下文章

java读取配置文件(properties)的时候,unicode码转utf-8

如何实现UTF-8 Unicode Ansi 汉字编码转换

python 如何将乱码转成汉字

python3 汉字转十六进制unicode

关于VS2015 字符集采用Unicode时出现的问题

怎样将unicode转化成中文