JAVA 编码格式转换工具类
package com.gootrip.util; import java.io.UnsupportedEncodingException;/** * <p>Title:字符编码工具类 </p> */ public class CharTools {/*** 转换编码 ISO-8859-1到GB2312* @param text* @return*/public static final String ISO2GB(String text) {String result = "";try {result = new String(text.getBytes("ISO-8859-1"), "GB2312");}catch (UnsupportedEncodingException ex) {result = ex.toString();}return result;}/*** 转换编码 GB2312到ISO-8859-1* @param text* @return*/public static final String GB2ISO(String text) {String result = "";try {result = new String(text.getBytes("GB2312"), "ISO-8859-1");}catch (UnsupportedEncodingException ex) {ex.printStackTrace();}return result;}/*** Utf8URL编码* @param s* @return*/public static final String Utf8URLencode(String text) {StringBuffer result = new StringBuffer();for (int i = 0; i < text.length(); i++) {char c = text.charAt(i);if (c >= 0 && c <= 255) {result.append(c);}else {byte[] b = new byte[0];try {b = Character.toString(c).getBytes("UTF-8");}catch (Exception ex) {}for (int j = 0; j < b.length; j++) {int k = b[j];if (k < 0) k += 256;result.append("%" + Integer.toHexString(k).toUpperCase());}}}return result.toString();}/*** Utf8URL解码* @param text* @return*/public static final String Utf8URLdecode(String text) {String result = "";int p = 0;if (text!=null && text.length()>0){text = text.toLowerCase();p = text.indexOf("%e");if (p == -1) return text;while (p != -1) {result += text.substring(0, p);text = text.substring(p, text.length());if (text == "" || text.length() < 9) return result;result += CodeToWord(text.substring(0, 9));text = text.substring(9, text.length());p = text.indexOf("%e");}}return result + text;}/*** utf8URL编码转字符* @param text* @return*/private static final String CodeToWord(String text) {String result;if (Utf8codeCheck(text)) {byte[] code = new byte[3];code[0] = (byte) (Integer.parseInt(text.substring(1, 3), 16) - 256);code[1] = (byte) (Integer.parseInt(text.substring(4, 6), 16) - 256);code[2] = (byte) (Integer.parseInt(text.substring(7, 9), 16) - 256);try {result = new String(code, "UTF-8");}catch (UnsupportedEncodingException ex) {result = null;}}else {result = text;}return result;}/*** 编码是否有效* @param text* @return*/private static final boolean Utf8codeCheck(String text){String sign = "";if (text.startsWith("%e"))for (int i = 0, p = 0; p != -1; i++) {p = text.indexOf("%", p);if (p != -1)p++;sign += p;}return sign.equals("147-1");}/*** 判断是否Utf8Url编码* @param text* @return*/public static final boolean isUtf8Url(String text) {text = text.toLowerCase();int p = text.indexOf("%");if (p != -1 && text.length() - p > 9) {text = text.substring(p, p + 9);}return Utf8codeCheck(text);} }
转载于:https://www.cnblogs.com/buhuifeideyun/p/4410264.html
JAVA 编码格式转换工具类相关推荐
- 自定义java对象转换工具类
背景 项目中经常有VO.PO.DTO等之间转换,由于apache工具类中BeanUtils.copyProperties及Json序列化反序列化方式转换性能比较低(阿里巴巴规范检查有提示不建议采用). ...
- Java金额转换工具类
package com.healthy.prms.common.util;import java.math.BigDecimal;/*** @ClassName: RMBUtils* @Descrip ...
- JAVA日期转换工具类
java中经常会用到日期的转换,所有自己整理了一套日期转换的工具类,方便使用. 首先导入 <dependency><groupId>joda-time</groupId& ...
- 提高工作效率的万能Java行列转换工具类
1.说明 有时候工作中需要动态生成列,也就是不确定的列,那么在数据库层就不是那么好操作了,可以使用java工具类来实现. 本工具类是对市面上的工具类进行加工改造,可以通用于各种情况,更加灵活,下面我来 ...
- java 对象 转换 工具类_Java中excel与对象的互相转换的通用工具类编写与使用(基于apache-poi-ooxml)...
通用excel与对象相互转换的工具类 前言:最近开发需要一个Excel批量导入或者导出的功能,之前用过poi-ooxml开发过一个导入的工具类,正好蹭着这次机会,把工具类的功能进行完善. 使用说明: ...
- java中文转换工具类
/*** 获取中文首字母工具类** @author jiangjunjie*/ public class ChineseCharToEnUtil {/*** 转换为有声调的拼音字符串** @param ...
- Java 文件转换工具类(word,html,excel,pdf,md,jpeg,png互转)
一.前言 目前支持: word 转 html doc 转 docx html 转 word html 转 pdf excel 转 pdf word 转 jpeg word 转 png markdown ...
- java 时间转换工具类 yyyyMMdd HH:mm
获取系统当前时间戳 : System.currentTimeMillis()) 获取系统当前时间任意格式,自己根据生成的格式选择性填写 /*** 获取当前时间* 把需要生成的时间格式替换一下就可以* ...
- Java时间转换工具类
/*** 获取对应毫秒转换成的天 时 分 秒 ms** @author 刘子固* @dete 2022.9.27*/ public class TimeDateUtils {/*** 一秒钟1000毫 ...
- java 视频转码工具类_JavaCV入门指南:FrameConverter转换工具类及CanvasFrame图像预览工具类(javaCV教程完结篇)...
JavaCV入门指南:FrameConverter转换工具类及CanvasFrame图像预览工具类(javaCV教程完结篇) 前言 再此章之前,我们已经详细介绍和剖析了javacv的结构和ffmpeg ...
最新文章
- 数据段、数据报、数据包、帧的区别与联系
- linux线程调度函数,Linux调度策略及线程优先级设置
- ofbiz mysql 中文安装_ofbiz的部署及安装问题解决办法
- 使用seek()函数与read()快速实现读取文件中的一段数据
- 【渝粤教育】广东开放大学 数据库原理与应用 形成性考核 (1)
- c语言中if和goto的用法,C语言中if和goto的用法.doc
- idea maven插件tomcat内存溢出
- IDEA创建Scala
- idea 批量导入包
- Page Cache引起的业务问题处理
- vue-cli 2.x 项目优化之:引入本地静态库文件
- 基于Metronic的Bootstrap开发框架--工作流模块功能介绍(2)
- 从零开始学编程——DOS命令
- 北斗系统基础知识0(专家解析:北斗卫星导航通信系统起源与发展工作原理)
- beatedit不能导入音乐/不能加节拍
- Elasticsearch 入门到精通-Elasticsearch创建索引
- Linux中不同文字颜色代表的含义
- redux中导入createStore中间有条线,解决方案及redux的使用。(react)
- PyCharm配置SSH和SFTP连接远程服务器
- 初级程序员和高级程序员的区别,你了解吗?
热门文章
- 【计算机组成原理】运算器组成实验
- 【Java程序设计】类的重用
- spark 过滤log
- 未找到依赖项 ‘org.apache.spark:spark-hive_2.11:2.4.5‘
- Spark 理论简答
- 初步学习UITableView(摘自传智播客)
- 有效的python属性管理:描述符的使用
- 云智慧压测实战分享之JMeter场景设置与监控
- mysql 5.7.15发布
- “我来管管看”系列:如何消除报工数据与入库数据的差异?