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

关于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

时间: 2024-09-18 02:00:32

java实现十六进制字符unicode与中英文转换示例_java的相关文章

Java中的字符编码问题处理心得总结_java

当面对一串字节流的时候,如果不指定它的编码,其实际意义是无法知道的. 这句话应该也是我们面对"字符转字节,字节转字符"问题时候时刻记在脑子里的.否则乱码问题可能就接踵而至. 其实乱码问题的本质就是Encoding和Decoding用的不是一个编码,明白了这个道理就很好解决乱码问题了. Java中常见的时候有如下: 1. String类使用byte[]的构造函数 String(byte[] bytes),String类同时提供了两个重载 (1)String(byte[] bytes, C

Javascript中字符串与字符数组之间的转换示例

1.string to array js里的string和java中的一样,都是不可变的常量. 早期的ECMAScript标准将string解析为不可变的字符数组, 支持str[index]这样的访问方式. 直到今天firefox仍然支持, 但IE不行. 我知道两种可以将字符串转换为数组的方法. 第一种很容易想到:使用charAt. Javascript代码: function toArray(str){     if(typeof str !="string"){         r

Java中BufferedReader与BufferedWriter类的使用示例_java

BufferedReaderBufferedReader 是缓冲字符输入流.它继承于Reader. BufferedReader 的作用是为其他字符输入流添加一些缓冲功能. 创建BufferReader时,我们会通过它的构造函数指定某个Reader为参数.BufferReader会将该Reader中的数据分批读取,每次读取一部分到缓冲中:操作完缓冲中的这部分数据之后,再从Reader中读取下一部分的数据. 为什么需要缓冲呢?原因很简单,效率问题!缓冲中的数据实际上是保存在内存中,而原始数据可能是

java利用mybatis拦截器统计sql执行时间示例_java

可以根据执行时间打印sql语句,打印的sql语句是带参数的,可以拷贝到查询分析器什么的直接运行 复制代码 代码如下: package mybatis; import java.text.DateFormat;import java.util.Date;import java.util.List;import java.util.Locale;import java.util.Properties; import org.apache.ibatis.executor.Executor;import

java将图片分割为几个部分示例_java

以下代码使用java将图片分割为几个部分,大家参考使用吧 复制代码 代码如下: public class SegmentationImage{    public static Icon Segmentation(String imagename,int Width,int Height,int height,int width) throws Exception{  // 准备分割图片      BufferedImage img1=ImageIO.read(new File(imagenam

java连接hdfs ha和调用mapreduce jar示例_java

Java API 连接 HDFS HA 复制代码 代码如下: public static void main(String[] args) {  Configuration conf = new Configuration();  conf.set("fs.defaultFS", "hdfs://hadoop2cluster");  conf.set("dfs.nameservices", "hadoop2cluster");

Java实现直接插入排序和折半插入排序算法示例_java

直接插入排序​1 排序思想: 将待排序的记录Ri插入到已经排好序的记录R1,R2,--,R(N-1)中. 对于一个随机序列而言,就是从第二个元素开始,依次将这个元素插入到它之前的元素中的相应位置.它之前的元素已经排好序. 第1次排序:将第2个元素插入到前边的有序列表(此时前边只有一个元素,当然是有序的),之后,这个序列的前2个元素就是有序的了. 第2次排序:将第3个元素插入到前边长度为2的有序列表,使得前2个元素是有序的. 以此类推,直到将第N个元素插入到前面长度为(N-1)的有序列表中. 2

用Java实现全国天气预报的api接口调用示例_java

step1:选择本文所示例的接口"全国天气预报接口" 聚合数据url:http://www.juhe.cn/docs/api/id/39/aid/87 step2:每个接口都需要传入一个参数key,相当于用户的令牌,所以第一步你需要申请一个key. step3:学过java的同学们都知道,当我们对一个类或者方法不明白其意图和思想时,我们可以去查看文档,这里也不例外,而且对于英文不是特别好的同学来说很幸运的是,聚合网站上的文档都是中文版本的,比起阅读java源码里的英文文档应该轻松很多.

java的前期绑定和后期绑定使用示例_java

后期绑定,是指在运行时根据对象的类型进行绑定,又叫动态绑定或运行时绑定.实现后期绑定,需要某种机制支持,以便在运行时能判断对象的类型,调用开销比前期绑定大.Java中的static方法和final方法属于前期绑定,子类无法重写final方法,成员变量(包括静态及非静态)也属于前期绑定.除了static方法和final方法(private属于final方法)之外的其他方法属于后期绑定,运行时能判断对象的类型进行绑定.验证程序如下: 复制代码 代码如下: class Base{    //成员变量,