`
hacker_zxf
  • 浏览: 148886 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

utf转UnicodeBig

 
阅读更多
今天遇到一个奇怪的问题,代码如下:
      public static String utfToUni(String str) {
        if (str == null) {
            return str;
        }
        try {
            byte[] ss = str.getBytes("UTF-8");
            str = new String(ss, "UnicodeBig");
        } catch (UnsupportedEncodingException e2) {
            e2.printStackTrace();
        }
        return str;
    }

     public static void main(String... strings) {

        System.out.print(Test.utfToUni("h"));

     }


修改代码如下:

 public static String utfToUni(String str) {
        if (str == null) {
            return str;
        }
        try {
            byte[] ss = str.getBytes("UTF-8");
            ss = Test.patch(ss);
            str = new String(ss, "UnicodeBig");
        } catch (UnsupportedEncodingException e2) {
            e2.printStackTrace();
        }
        return str;
    }

    /**
     * 不足补0
     * 
     * @param b
     * @return
     */
    public static byte[] patch(byte[] b) {
        byte[] ss;
        if (b.length % 2 != 0) {
            ss = new byte[b.length + 1];
            System.arraycopy(b, 0, ss, 0, b.length);
            ss[b.length] = 0;
            return ss;

        }
        return b;
    }



如此,结果就出来了,我自己分析下,是因为UnicodeBig是两个字节的,如果是单字节就会转换出错,不知道确切该如何解释!
分享到:
评论
1 楼 lingqi1818 2008-12-31  
建议看下内网上baobao写的那篇文章。。

相关推荐

    字符编码转换类,支持 ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom互相转换

    "CharsetConv"类提供了一个工具,帮助开发者在ANSI、Unicode(Little Endian和Big Endian)、UTF-8及UTF-8+BOM之间灵活转换,从而避免编码问题带来的困扰。通过深入学习和实践,开发者可以更好地应对各种编码挑战,...

    读取ANSI、Unicode、Unicode big endian、UTF-8、UTF8 Bom、UTF16-LE明码文件

    读取ANSI 明码文件 读取Unicode 明码文件 读取Unicode big endian 明码文件 读取UTF-8 明码文件 读取UTF8 Bom 明码文件 读取UTF16-LE 明码文件 读取UTF16-BE 明码文件 到多字节字符串 扩展类CFilePlainCode

    VC ANSI环境下按行读取ANSI、UNICODE 、UNICODE big endian、UTF-8四种文本文件

    VC ANSI环境下按行读取ANSI、UNICODE、UNICODE big endian、UTF-8四种文本文件 本资源摘要信息介绍了如何在VC ANSI环境下按行读取四种不同编码格式的文本文件,包括ANSI、UNICODE、UNICODE big endian和UTF-8。通过...

    文本文件编码转换:ANSI、Unicode、UTF-8相互转换(修改版)

    ANSI --> Unicode ANSI --> Unicode big endian...UTF-8 --> Unicode big endian ansi转别的,不检验BOM,一律作为ansi编码进行转换 unicode转别的,首先检验BOM,不合格不转换 utf8转别的,首先检验BOM,不合格不转换

    TXT编码批量转换 V2.0编码UnicodeANSIUTF-8互转软件功能Unicode转ANSI转UTF-8互转软件.exe

    Txt文件编码批量转换器用于批量转换txt文本文档的编码格式。通常,我们电脑里的txt文件都是ASNI编码,当放到手机或MP3里时,打开看到的往往...目前,它支持ASNI、UTF-8、Unicode和Unicode big endian等编码的相互转换。

    UTF-8与GB与 Big5之间的转换

    UTF-8是一种变长的Unicode编码方式,它可以表示世界上几乎所有的字符。UTF-8最大的优点在于其兼容性,它在互联网上被广泛采用,因为大多数现代网页和编程语言都默认支持UTF-8。UTF-8编码的一个特点是,英文和很多...

    Unicode2GB UTF8ToGB 字符集转换(跨平台)

    常见的字符集有ASCII、GB2312、GBK、Big5和Unicode等。其中,ASCII主要包含英文字符,GB2312是中国大陆的基础汉字字符集,GBK是对GB2312的扩展,增加了更多的汉字和符号;而Unicode是一个国际标准,包含了世界上几乎...

    delphi 6-XE读取ANSI,unicode,unicode big,utf-8,utf-8BOM文件,保存utf8

    delphi 6-XE读取ANSI,unicode,unicode big,utf-8,utf-8BOM文件,保存utf8

    字符编码转换 Text、ANSI、Unicode、Unicode Big Endian、UTF-8、UTF-7

    本篇文章将深入探讨标题中提及的几种字符编码:Text、ANSI、Unicode(包括Little Endian和Big Endian)、UTF-8以及UTF-7,并介绍它们之间的转换。 1. **Text编码**: 在Windows系统中,通常所说的"Text"编码是指...

    Big5字与Unicode的互换

    - **Big5转Unicode**:先将Big5编码的字符串解码为字节流,再将该字节流按照Big5编码解码为Unicode。 - **Unicode转Big5**:先将Unicode编码的字符串解码为字节流,再将该字节流按照Big5编码解码。 #### 五、Java...

    unicode转gb18030编码

    本文将深入探讨“unicode转gb18030编码”的相关知识点,并基于C语言的实现进行详细阐述。 首先,让我们了解两种编码体系:Unicode和GB18030。 **Unicode** 是一个国际标准,它定义了一个统一的字符集,涵盖了世界...

    CStdioFileEx(支持ANSI、UNICODE、UNICODE big endian、UTF-8编码的文本读取

    (包括ANSI、UNICODE、UNICODE big endian、UTF-8)格式的文本文件 */ //核心算法:CStdioFileEx继承自CStdioFile, 覆盖CStdioFile的 BOOL ReadString(CString& rString)方法, // 根据不同文件编码特征,寻找文件...

    中文 Big5/GBK/Unicode/UTF8 内码转换器

    《中文编码转换器详解:Big5、GBK、Unicode与UTF8的互换之道》 在计算机世界里,字符编码是沟通人类语言与机器之间的重要桥梁。本文将详细讲解标题所提及的“中文 Big5/GBK/Unicode/UTF8 内码转换器”这一工具,...

    C实现数字转Unicode码

    对于非UTF-32编码,还需要了解字节顺序,例如小端序(little-endian)和大端序(big-endian)。C语言的标准库中并没有直接支持Unicode的函数,但可以通过第三方库如ICU(International Components for Unicode)或者...

    GBK转UNICODE函数和码表

    2. **字节序问题**:Unicode编码有大端序(Big-Endian)和小端序(Little-Endian)之分。在转换过程中,需要考虑到目标Unicode编码的字节顺序,确保数据正确解码。例如,如果目标是UTF-16,那么在某些平台上可能需要...

    PHP编码转换函数utf-gb-big5

    首先,我们来看标题中的"utf-gb-big5",这代表了UTF-8、GBK(GB2312)和Big5三种编码格式。UTF-8是一种广泛使用的多字节编码,能表示Unicode字符集中的所有字符;GBK是中国大陆的标准,兼容GB2312,扩展了更多的汉字...

    utf8 gbk big5 多编码批量转换软件

    例如,GBK编码不包含所有Unicode字符,所以当从UTF-8转GBK时,非GBK范围内的字符可能需要特殊处理。同样,从GBK转BIG5也存在类似的问题,因为BIG5只覆盖了部分繁体中文字符。 总的来说,这款“utf8 gbk big5 多编码...

    gbk, gb2312,big5,unicode,utf-8,utf-16的区别

    gbk, gb2312,big5,unicode,utf-8,utf-16的区别

    c gbk和 utf-8 转换

    2. Unicode转UTF-8: - Unicode码点转换为UTF-8的过程相对复杂,因为UTF-8编码是变长的,根据Unicode码点的大小,可能会占用1到4个字节。 - 对于小于128的码点(ASCII字符),直接用单字节表示,最高位为0。 - ...

    GBK-BIG-UTF编码转换软件

    最后,UTF(Unicode Transformation Format)是基于Unicode字符集的编码方式,包括UTF-8、UTF-16、UTF-32等多种变体。Unicode是一个包含几乎世界上所有字符的统一编码标准,不论简体、繁体还是其他语言,都能在...

Global site tag (gtag.js) - Google Analytics