package com.tcwl.vsmp.mortgage.utils;
/*** 编码查询,utf-8 与 GBK 编码互转* 苏凯* 2018-10-24*/
import java.io.UnsupportedEncodingException;/*** 编码查询与转换*/
public class EncodeQueryAndTransition {//编码转换/*** gbk转utf-8* @param gbk* @return* @throws UnsupportedEncodingException*/public static byte[] gbk2UtfByte(String gbk)throws UnsupportedEncodingException {char[]c= gbk.toCharArray();byte[]fullByte=new byte[3*c.length];for(int i=0;i<c.length;i++){String binary=Integer.toBinaryString(c[i]);StringBuffer sb=new StringBuffer();int len=16-binary.length();//前面补零for(int j=0;j<len;j++){sb.append("0");}sb.append(binary);//增加位,达到到24位3个字节sb.insert(0,"1110");sb.insert(8,"10");sb.insert(16,"10");fullByte[i*3]=Integer.valueOf(sb.substring(0,8),2).byteValue();//二进制字符串创建整型fullByte[i*3+1]=Integer.valueOf(sb.substring(8,16),2).byteValue();fullByte[i*3+2]=Integer.valueOf(sb.substring(16,24),2).byteValue();}//模拟UTF-8编码System.out.println(new String(fullByte,"UTF-8"));return fullByte;
}/*** utf-8 转GBK* @param gbkStr* @return*/public static byte[] getUTF8BytesFromGBKString(String gbkStr) {int n = gbkStr.length();byte[] utfBytes = new byte[3 * n];int k = 0;for (int i = 0; i<n;i++){int m=gbkStr.charAt(i);if(m<128&&m>=0){utfBytes[k++]=(byte)m;continue;}utfBytes[k++]=(byte)(0xe0|(m>>12));utfBytes[k++]=(byte)(0x80|((m>>6)&0x3f));utfBytes[k++]=(byte)(0x80|(m&0x3f));}if(k<utfBytes.length){byte[]tmp=new byte[k];System.arraycopy(utfBytes,0,tmp,0,k);return tmp;}return utfBytes;}/*** 编码查询*/public static String getEncoding(String str) {String encode = "GB2312";try {if (str.equals(new String(str.getBytes(encode), encode))) {      //判断是不是GB2312String s = encode;return s;      //是的话,返回“GB2312“,以下代码同理}} catch (Exception exception) {}encode = "ISO-8859-1";try {if (str.equals(new String(str.getBytes(encode), encode))) {      //判断是不是ISO-8859-1String s1 = encode;return s1;}} catch (Exception exception1) {}encode = "UTF-8";try {if (str.equals(new String(str.getBytes(encode), encode))) {   //判断是不是UTF-8String s2 = encode;return s2;}} catch (Exception exception2) {}encode = "GBK";try {if (str.equals(new String(str.getBytes(encode), encode))) {      //判断是不是GBKString s3 = encode;return s3;}} catch (Exception exception3) {}return "";        //如果都不是,说明输入的内容不属于常见的编码格式。
}
}

测试:

   String line = "你好";//gbkbyte[] bytes = EncodeQueryAndTransition.gbk2UtfByte(line); //gbk转utf-String z =new String(bytes,"UTF-8");System.out.println("z :"+EncodeQueryAndTransition.getEncoding( z ));//获取编码格式

编码查询,utf-8 与 GBK 编码互转相关推荐

  1. Windows命令行编辑器查看Unicode编码和Linux终端查看GBK编码

    Windows命令行编辑器中查看UTF编码的方法 最近在Windows下使用CTeX套装,需要通过 fc-list :lang=zh 命令来查看当前可用的中文字体.但是在命令行运行的结果却是乱码. 初 ...

  2. 国家职业标准职业编码查询_为什么我学会编码而不是从事金融职业

    国家职业标准职业编码查询 by Amir Ghafouri 通过阿米尔·加富里(Amir Ghafouri) 为什么我学会编码而不是从事金融职业 (Why I learned to code inst ...

  3. linux 字符集转换命令,Linux下GBK编码到UTF-8文件编码转换方法

    Linux命令行下查看看文件的编码 enca 文件名 Linux文件名编码批量转换 convmv -f 源编码 -t 新编码 [选项] 文件名 常用参数: -r 递归处理子文件夹 --notest 真 ...

  4. Python中文gbk编码输出报错

    Python使用requests模块作接口请求,在处理response响应时,经常会出现乱码或者报错,比如 import requests #--请求接口查询天气 result = requests. ...

  5. 使用xslt将.xml,转换成一个html网页时中文显示乱码怎么办,用dom将数据写到xml中 设置xml文件gbk编码时中文会出现乱码...

    问题:我用dom将数据写到xml中 设置xml文件的编码格式是gbk时再dos下运行jar包中文会出现乱码 如下: 代码如下: StringWriter strWtr = new StringWrit ...

  6. Python 入门 26 —— ASCII 编码、Unicode 编码、 UTF-32、 UTF-16、 UTF-8、 GB2312 编码、 GBK 编码

    计算机存储和处理信息都是以一个8位的二进制字节为单位的,例如:0b 1111 0000.一个字母.汉字等如何用一个二进制的数(编码)来表示呢.在计算机发展初期,因为没有人能预料到计算机会有现在这么大的 ...

  7. 第一章 编程基础_ASCII 编码和GBK编码

    计算机是一种改变世界的发明,很快就从美国传到了全球各地,得到了所有国家的认可,成为了一种不可替代的工具.计算机在广泛流行的过程中遇到的一个棘手问题就是字符编码,计算机是美国人发明的,它使用的是 ASC ...

  8. mac下html编辑器,【已解决】Mac下好用的支持GBK编码的文本代码编辑器

    Mac中已安装了Sublime Text 3和ATOM编辑器,但是对于从Windows拷贝过来的,GBK编码的文本支持都不好: 打开后,中文是乱码: 但是Mac中的 文本编辑器,却是可以正常打开的: ...

  9. 单片机中UTF-8如何转换得到GBK编码

    概述 我们在单片机开发中常会遇到需要将UTF-8转换为GBK编码的需求. 在我们了解各种编码格式的情况下可知, UFT-8不能直接转成GBK,需中转成unicode再转换为gbk.而unicode和g ...

最新文章

  1. Vue2.x开发饿了么项目(header部分)
  2. 局域网与网络工程课堂笔记(1)(2)
  3. 关于bjam编译自己模块出错的问题
  4. 06--MySQL自学教程:DML(Data Manipulation Language:数据库操作语言),只操作表
  5. element ui table scrollTop 滚动到行头或行尾
  6. php 操作数组 (合并,拆分,追加,查找,删除等)
  7. 【自我救赎--牛客网Top101 4天刷题计划】 第一天 热身运动
  8. 设计、定义并实现Complex类
  9. 凤凰系统基于android x x86,凤凰系统X86|Phoenix OS X86 V3.0.8.529官方版
  10. BMZCTF:神秘压缩包
  11. python发微信图片_Python实现的微信公众号群发图片与文本消息功能实例详解
  12. 关于EF Core中同一个实体被多次tracked的问题
  13. python写邮箱系统登录_Python selenium登录163邮箱示例
  14. 运营商劫持是什么、运营商DNS网络劫持如何解决
  15. C#-Event事件
  16. 怎么恢复误删的重要文件,电脑误删重要文件怎么恢复
  17. ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
  18. 解除Word的编辑保护【简单版】
  19. adaboost训练 之 弱分类器训练原理
  20. python屏幕文字识别_python 图片文字识别 可截图识别

热门文章

  1. 炎炎夏日,如何选择适合自己肤质的面膜
  2. python爬虫/ 获取多页信息并下载本地 P1-1
  3. 如何在windows server 2012创建新用户与组?
  4. mysql查询归档状态_数据库归档模式的管理
  5. 易车、毛豆新车、蛋蛋订车买车到底靠谱吗?
  6. mac xquartz+iterm2
  7. ERA5 积雪 降雪 区别_“雪走霾来” 河南降雪今夜停止 19-24日将迎雾霾天
  8. 线性代数Python计算:Python的布尔代数
  9. 最新微信公众号砍价系统程序源码+仿砍价啦独立系统
  10. ElasticSearch保姆级入门教程