java实现十六进制字符unicode与中英文转换示例

关于unicode和utf的关系,可以简单的记忆:Unicode是一个编码组织、一个编码规范、在java中指utf-16;utf是Unicode编码的translation转换格式,以便于很好地在网络中传递、在存储媒介汇总保存,于是utf存在多种格式,如8、16、32,而关联le、te的区别,Unicode编码格式才会有以下过程中的10种。

代码如下:

public static void main(String[] args) throws UnsupportedEncodingException {
                 StringUtil.str2all("0 产品型号描述");
  StringUtil.str4all("30000900A74EC1548B57F753CF63F08F");
 }

/**
  * 尝试所有编码格式对十六进制数字字符串进行编码
  *
  * @param hexStr
  * @throws UnsupportedEncodingException
  */
 public static void str4all(String uStr) throws UnsupportedEncodingException{

System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++");

byte[] bs = new byte[uStr.length()/2];
  for (int i = 0; i < bs.length; i++) {
   bs[i] = (byte) Integer.parseInt(uStr.substring(i*2, i*2+2), 16);
  }

System.out.println(new String(bs, "utf-8"));
  // 16
  System.out.println(new String(bs, "utf-16")); // 同unicode
  System.out.println(new String(bs, "utf-16le"));
  System.out.println(new String(bs, "x-utf-16le-bom"));
  System.out.println(new String(bs, "utf-16be"));
//  System.out.println(new String(bs, "x-utf-16be-bom")); // UnsupportedEncodingException
  // 32
  System.out.println(new String(bs, "utf-32"));
  System.out.println(new String(bs, "utf-32le"));
  System.out.println(new String(bs, "x-utf-32le-bom"));
  System.out.println(new String(bs, "utf-32be"));
  System.out.println(new String(bs, "x-utf-32le-bom"));
 }
/**
  * 列出所有编码对应的解码后的十六进制数字字符串
  *
  * @param uStr
  * @throws UnsupportedEncodingException
  */
 public static void str2all(String uStr) throws UnsupportedEncodingException{

System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++");

byte[] bs = new byte[]{};

bs = uStr.getBytes("utf-8");
  for(byte b:bs){
   System.out.print(Integer.toHexString(b & 0xff));
  }
  System.out.println();
  // 16
  bs = uStr.getBytes("utf-16");
  for(byte b:bs){
   System.out.print(Integer.toHexString(b & 0xff));
  }
  System.out.println();
  bs = uStr.getBytes("utf-16le");
  for(byte b:bs){
   System.out.print(Integer.toHexString(b & 0xff));
  }
  System.out.println();
  bs = uStr.getBytes("x-utf-16le-bom");
  for(byte b:bs){
   System.out.print(Integer.toHexString(b & 0xff));
  }
  System.out.println();
  bs = uStr.getBytes("utf-16be");
  for(byte b:bs){
   System.out.print(Integer.toHexString(b & 0xff));
  }
  System.out.println();
//  bs = uStr.getBytes("x-utf-16be-bom"); // UnsupportedEncodingException
  // 32
  bs = uStr.getBytes("utf-32");
  for(byte b:bs){
   System.out.print(Integer.toHexString(b & 0xff));
  }
  System.out.println();
  bs = uStr.getBytes("utf-32le");
  for(byte b:bs){
   System.out.print(Integer.toHexString(b & 0xff));
  }
  System.out.println();
  bs = uStr.getBytes("x-utf-32le-bom");
  for(byte b:bs){
   System.out.print(Integer.toHexString(b & 0xff));
  }
  System.out.println();
  bs = uStr.getBytes("utf-32be");
  for(byte b:bs){
   System.out.print(Integer.toHexString(b & 0xff));
  }
  System.out.println();
  bs = uStr.getBytes("x-utf-32le-bom");
  for(byte b:bs){
   System.out.print(Integer.toHexString(b & 0xff));
  }
  System.out.println();
 }

编码名称收集


代码如下:

charset US-ASCII %S
    historicalName ASCII
    # IANA aliases
    alias iso-ir-6
    alias ANSI_X3.4-1986
    alias ISO_646.irv:1991
    alias ASCII
    alias ISO646-US
    alias us
    alias IBM367
    alias cp367
    alias csASCII
    alias default
    # Other aliases
    alias 646 # Solaris POSIX locale
    alias iso_646.irv:1983
    alias ANSI_X3.4-1968 # Linux POSIX locale (RedHat)
    alias ascii7

charset UTF-8 UTF_8
    historicalName UTF8
    alias UTF8
    alias unicode-1-1-utf-8

charset UTF-16 UTF_16
    historicalName UTF-16
    alias UTF_16
    alias utf16
    alias unicode
    alias UnicodeBig

charset UTF-16BE UTF_16BE
    historicalName UnicodeBigUnmarked
    alias UTF_16BE
    alias ISO-10646-UCS-2
    alias X-UTF-16BE
    alias UnicodeBigUnmarked

charset UTF-16LE UTF_16LE
    historicalName UnicodeLittleUnmarked
    alias UTF_16LE
    alias X-UTF-16LE
    alias UnicodeLittleUnmarked

charset x-UTF-16LE-BOM UTF_16LE_BOM
    historicalName UnicodeLittle
    alias UnicodeLittle

charset UTF-32 UTF_32
    alias UTF_32
    alias UTF32

charset UTF-32LE UTF_32LE
    alias UTF_32LE
    alias X-UTF-32LE

charset UTF-32BE UTF_32BE
    alias UTF_32BE
    alias X-UTF-32BE

charset X-UTF-32LE-BOM UTF_32LE_BOM
    alias UTF_32LE_BOM
    alias UTF-32LE-BOM

charset X-UTF-32BE-BOM UTF_32BE_BOM
    alias UTF_32BE_BOM
    alias UTF-32BE-BOM

charset ISO-8859-1 %S
    historicalName ISO8859_1
    # IANA aliases
    alias iso-ir-100
    alias ISO_8859-1
    alias latin1
    alias l1
    alias IBM819
    alias cp819
    alias csISOLatin1
    # Other aliases
    alias 819
    alias IBM-819
    alias ISO8859_1
    alias ISO_8859-1:1987
    alias ISO_8859_1
    alias 8859_1
    alias ISO8859-1

charset ISO-8859-2 %S
    historicalName ISO8859_2
    alias iso8859_2
    alias 8859_2
    alias iso-ir-101
    alias ISO_8859-2
    alias ISO_8859-2:1987
    alias ISO8859-2
    alias latin2
    alias l2
    alias ibm912
    alias ibm-912
    alias cp912
    alias 912
    alias csISOLatin2

charset ISO-8859-4 %S
    historicalName ISO8859_4
    alias iso8859_4
    alias iso8859-4
    alias 8859_4
    alias iso-ir-110
    alias ISO_8859-4
    alias ISO_8859-4:1988
    alias latin4
    alias l4
    alias ibm914
    alias ibm-914
    alias cp914
    alias 914
    alias csISOLatin4

charset ISO-8859-5 %S
    historicalName ISO8859_5
    alias iso8859_5
    alias 8859_5
    alias iso-ir-144
    alias ISO_8859-5
    alias ISO_8859-5:1988
    alias ISO8859-5
    alias cyrillic
    alias ibm915
    alias ibm-915
    alias cp915
    alias 915
    alias csISOLatinCyrillic

charset ISO-8859-7 %S
    historicalName ISO8859_7
    alias iso8859_7
    alias 8859_7
    alias iso-ir-126
    alias ISO_8859-7
    alias ISO_8859-7:1987
    alias ELOT_928
    alias ECMA-118
    alias greek
    alias greek8
    alias csISOLatinGreek
    alias sun_eu_greek # Solaris 7/8 compatibility
    alias ibm813
    alias ibm-813
    alias 813
    alias cp813
    alias iso8859-7 # Solaris 9 compatibility

charset ISO-8859-9 %S
    historicalName ISO8859_9
    alias iso8859_9
    alias 8859_9
    alias iso-ir-148
    alias ISO_8859-9
    alias ISO_8859-9:1989
    alias ISO8859-9
    alias latin5
    alias l5
    alias ibm920
    alias ibm-920
    alias 920
    alias cp920
    alias csISOLatin5

charset ISO-8859-13 %S
    historicalName ISO8859_13
    alias iso8859_13
    alias 8859_13
    alias iso_8859-13
    alias ISO8859-13

charset ISO-8859-15 %S
    historicalName ISO8859_15
    # IANA alias
    alias ISO_8859-15
    # Other aliases
    alias 8859_15
    alias ISO8859_15
    alias ISO8859-15
    alias IBM923
    alias IBM-923
    alias cp923
    alias 923
    alias LATIN0
    alias LATIN9
    alias L9
    alias csISOlatin0
    alias csISOlatin9
    alias ISO8859_15_FDIS

charset KOI8-R %S
    historicalName KOI8_R
    alias koi8_r
    alias koi8
    alias cskoi8r

charset KOI8-U %S
    alias koi8_u

charset windows-1250 %S
    historicalName Cp1250
    alias cp1250
    alias cp5346 # Euro IBM CCSID

charset windows-1251 %S
    historicalName Cp1251
    alias cp1251
    alias cp5347 # Euro IBM CCSID
    alias ansi-1251 # Solaris compatibility

charset windows-1252 %S
    historicalName Cp1252
    alias cp1252
    alias cp5348 # Euro IBM CCSID

charset windows-1253 %S
    historicalName Cp1253
    alias cp1253
    alias cp5349 # Euro IBM CCSID

charset windows-1254 %S
    historicalName Cp1254
    alias cp1254
    alias cp5350 # Euro IBM CCSID

charset windows-1257 %S
    historicalName Cp1257
    alias cp1257
    alias cp5353 # Euro IBM CCSID

charset IBM437 %S
    historicalName Cp437
    alias cp437
    alias ibm-437
    alias 437
    alias cspc8codepage437
    alias windows-437

charset x-IBM737 %S
    historicalName Cp737
    alias cp737
    alias ibm737
    alias ibm-737
    alias 737

charset IBM775 %S
    historicalName Cp775
    alias cp775
    alias ibm-775
    alias 775

charset IBM850 %S
    historicalName Cp850
    alias cp850
    alias ibm-850
    alias 850
    alias cspc850multilingual

charset IBM852 %S
    historicalName Cp852
    alias cp852
    alias ibm-852
    alias 852
    alias csPCp852

charset IBM855 %S
    historicalName Cp855
    alias cp855
    alias ibm-855
    alias 855
    alias cspcp855

charset IBM857 %S
    historicalName Cp857
    alias cp857
    alias ibm-857
    alias 857
    alias csIBM857

charset IBM00858 %S
    historicalName Cp858
    alias cp858
    alias ccsid00858
    alias cp00858
    alias 858

charset IBM862 %S
    historicalName Cp862
    alias cp862
    alias ibm-862
    alias 862
    alias csIBM862
    alias cspc862latinhebrew

charset IBM866 %S
    historicalName Cp866
    alias cp866
    alias ibm-866
    alias 866
    alias csIBM866

charset x-IBM874 %S
    historicalName Cp874
    alias cp874
    alias ibm874
    alias ibm-874
    alias 874

(0)

相关推荐

  • Java 进制转换的方法

    复制代码 代码如下: //二转十Integer.toBinaryString(int i);//八转十Integer.toOctalString(int i);//十六转十Integer.toHexString(int i); 10//二转十11Integer.valueOf("1010",2).toString();12//八转十13Integer.valueOf("8765",8).toString();14//十六转十15Integer.valueOf(&qu

  • Java中float类型的范围及其与十六进制的转换例子

    float占用4个字节,和int是一样,也就是32bit.       第1个bit表示符号,0表示正数,1表示负数,这个很好理解,不用多管.       第2-9个bit表示指数,一共8为(可以表示0-255),这里的底数是2,为了同时表示正数和负数,这里要减去127的偏移量.这样的话范围就是(-127到128),另外全0和全1作为特殊处理,所以直接表示-126到127.      剩下的23位表示小数部分,这里23位表示了24位的数字,因为有一个默认的前导1(只有二进制才有这个特性).   

  • Java将字节转换为十六进制代码分享

    本文部分代码摘录自网上,并稍加整理,用于字节与十六进制之间的转换. /** * reference apache commons <a * href="http://commons.apache.org/codec/">http://commons.apache.org/codec/</a> * * byte占用8位,十六进制字符占用4位.所以可以把一个byte转换成两个相应的十六进制字符,即把byte的高4位和低4位 * 分别转换成相应的十六进制字符H和L,并

  • JAVA 十六进制与字符串的转换

    toHexString public static String toHexString(int i)以十六进制的无符号整数形式返回一个整数参数的字符串表示形式. 如果参数为负,那么无符号整数值为参数加上 232:否则等于该参数.将该值转换为十六进制(基数 16)的无前导 0 的 ASCII 数字字符串.如果无符号数的大小值为零,则用一个零字符 '0' ('\u0030') 表示它:否则,无符号数大小的表示形式中的第一个字符将不是零字符.用以下字符作为十六进制数字: 0123456789abcd

  • java实现ip地址与十进制数相互转换

    先看实例 代码如下 复制代码 代码如下: classip { privatestaticlongiptolong(stringstrip) //将127.0.0.1形式的ip地址转换成10进制整数,这里没有进行任何错误处理 { intj=0; inti=0; long[]ip=newlong[4]; intposition1=strip.indexof("."); intposition2=strip.indexof(".",position1+1); intpos

  • java中进制的转换,Byte与16进制的转换方法

    java中对于进制的转换有很多方式,其中对于常见的基本的二进制 八进制 十进制 十六进制等的转换有对于的包装类实现,不需要通过二外的算法来进行实现,具体如下: 首先关于最简单的二进制转换的方法有: 十进制转成十六进制: String Integer.toHexString(int i) 十进制转成八进制 String Integer.toOctalString(int i) 十进制转成二进制  String Integer.toBinaryString(int i) 十六进制转成十进制 Inte

  • java发送heartbeat心跳包(byte转16进制)

    复制代码 代码如下: package com.jxy.web; import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.net.Socket;import java.net.UnknownHostException; import com.jxy.tools.MyByte; pu

  • Java中十进制和十六进制的相互转换方法

    //  十进制转化为十六进制,结果为C8. Integer.toHexString(200); // 十六进制转化为十进制,结果140. Integer.parseInt("8C",16); 以上这篇Java中十进制和十六进制的相互转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Java实现复杂的进制转换器功能示例

    本文实例讲述了Java实现复杂的进制转换器功能.分享给大家供大家参考,具体如下: 这是用java写的进制转换器,包括10.2.8.16进制之间共12种的相互转换.输入一个要转换的数之后,按提示选择所采用的转换方式,输出转换的结果. 注:新上传的文件是在此前代码(下面的3. 原java代码)的基础上做了改进,能更好地实现封装. 1. SystemConvert.java package day8; import java.util.Scanner; public class SystemConve

  • java实现汉字转unicode与汉字转16进制实例

    本文实例讲述了java实现汉字转unicode与汉字转16进制的实现方法.分享给大家供大家参考.具体实现方法如下: 一.汉字转unicode 复制代码 代码如下: public static String toUnicode(String s) {         String as[] = new String[s.length()];         String s1 = "";         for (int i = 0; i < s.length(); i++)   

  • Java 十进制转二、八、十六进制的字符串

    十进制转二进制 class DecToBin { public static void main(String[] args) { //System.out.println("Hello World!"); long dec = -9223372036854775807l; // -9223372036854775808 这个数不行,不要试,嘿嘿 String binStr=""; long decAbs=Math.abs(dec); while (decAbs&g

随机推荐