java编码转换 unicode to utf-8

private  String decodeUnicode(String theString) {
        char aChar;
        int len = theString.length();
        StringBuffer outBuffer = new StringBuffer(len);
        for (int x = 0; x < len;) {
            aChar = theString.charAt(x++);
            if (aChar == ‘\\‘) {
                aChar = theString.charAt(x++);
                if (aChar == ‘u‘) {
                    // Read the xxxx
                    int value = 0;
                    for (int i = 0; i < 4; i++) {
                        aChar = theString.charAt(x++);
                        switch (aChar) {
                        case ‘0‘:
                        case ‘1‘:
                        case ‘2‘:
                        case ‘3‘:
                        case ‘4‘:
                        case ‘5‘:
                        case ‘6‘:
                        case ‘7‘:
                        case ‘8‘:
                        case ‘9‘:
                            value = (value << 4) + aChar - ‘0‘;
                            break;
                        case ‘a‘:
                        case ‘b‘:
                        case ‘c‘:
                        case ‘d‘:
                        case ‘e‘:
                        case ‘f‘:
                            value = (value << 4) + 10 + aChar - ‘a‘;
                            break;
                        case ‘A‘:
                        case ‘B‘:
                        case ‘C‘:
                        case ‘D‘:
                        case ‘E‘:
                        case ‘F‘:
                            value = (value << 4) + 10 + aChar - ‘A‘;
                            break;
                        default:
                            throw new IllegalArgumentException(
                                    "Malformed   \\uxxxx   encoding.");
                        }

                    }
                    outBuffer.append((char) value);
                } else {
                    if (aChar == ‘t‘)
                        aChar = ‘\t‘;
                    else if (aChar == ‘r‘)
                        aChar = ‘\r‘;
                    else if (aChar == ‘n‘)
                        aChar = ‘\n‘;
                    else if (aChar == ‘f‘)
                        aChar = ‘\f‘;
                    outBuffer.append(aChar);
                }
            } else
                outBuffer.append(aChar);
        }
        return outBuffer.toString();
    }
时间: 2024-11-13 06:44:52

java编码转换 unicode to utf-8的相关文章

字符与编码(Java编码转换详细过程)

字符串在java内存中统一用unicode表示( 即utf-16 LE) , 不管是字符串字面量还是从文件中读取的,java使用unicode作为桥梁来处理各种编码的转换. 我们的java程序由.java的类文件组成,在这些类文件中都有可能包含中文字符串.并且我们常常需要和用户直接交互,用于输入和输出字符串.如:我们在jsp和servlet中得到客户端发送过来的字符串,这些字符串中包含中文字符.无论这些java类的作用如何,这些java程序的生命周期都是这样的: 1.编程人员在一定的操作系统上选

Python字符编码转换Unicode和str

参考链接1:https://blog.csdn.net/VictoriaW/article/details/75314737 参考链接2:https://blog.csdn.net/sheldonwong/article/details/86684761 Unicode和str ## str 我们平时写的用引号括起来的字符串都是str类型的. >>> x = '哈哈' >>> x '\xb9\xfe\xb9\xfe' ### 根据上面的打印结果,可以知道str类型的x存

Delphi 编码转换 Unicode gbk big5(使用LCMapString设置区域后,再用API转换)

原文:http://blog.dream4dev.com/article.asp?id=17 function UnicodeEncode(Str: string; CodePage: integer): WideString;var Len: integer;begin Len := Length(Str) + 1; SetLength(Result, Len); Len := MultiByteToWideChar(CodePage, 0, PChar(Str), -1, PWideChar

String.getBytes() String编码转换

在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组.这个表示在不通OS下,返回的东西不一样! String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如 byte[] b_gbk = "中".getBytes("GBK"); byte[] b_utf8 = "中".getBytes("UTF-8"); by

Java用native2ascii命令做unicode编码转换

背景:在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文件就需要进行Unicode重新编码.原因是java默认的编码方式为Unicode,而我们的计算机系统编码常常是GBK等编码.需要将系统的编码转换为java正确识别的编码问题就解决了. 1.native2ascii简介:native2ascii是sun java sdk提供的一个工具.用来将别的文本类文件(比如*.txt,*.ini,*.proper

[C语言]unicode与utf-8编码转换(一)

Unicode与UTF-8编码转换(一) Unicode是一个符号集合,规定了符号的二进制代码,而UTF-8是Unicode的一种实现,具体Unicode和UTF-8的联系如下所示:         Unicode符号范围                    UTF-8编码规则  1 | 0000 0000 - 0000 007F |                                              0xxxxxxx    2 | 0000 0080 - 0000 07

分享万能java字符串编码转换工具类

代码下载地址:http://www.zuidaima.com/share/1795356301560832.htm 原文:分享万能java字符串编码转换工具类 package com.zuidaima.util; import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US.Unicode字符集的基本拉丁块 */ publ

JAVA字符串编码转换常用类

无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题.尤其在web应用中常常需要处理中文字符,这时就需要进行字符串的编码转换,将字符串编码转换为GBK或者GB2312.一.关键技术点:    1.当前流行的字符编码格式有:US-ASCII.ISO-8859-1.UTF-8.UTF-16BE.UTF-16LE.UTF-16.GBK.GB2312等,其中GBK.GB2312是专门处理中文编码的.    2.String的getBytes方法用于按指定编码获取字符串的字节数组,参数指定了解码

java字符串的各种编码转换

import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US.Unicode字符集的基本拉丁块 */ public static final String US_ASCII = "US-ASCII"; /** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 */ public static fina