java字符串转成utf-8_将字符串的编码格式转换为utf-8
方式一:
/**
* 将字符串的编码格式转换为utf-8
*
* @param str
* @return Name = new
* String(Name.getBytes("ISO-8859-1"), "utf-8");
*/
public static String toUTF8(String str) {
if (isEmpty(str)) {
return "";
}
try {
if (str.equals(new String(str.getBytes("GB2312"), "GB2312"))) {
str = new String(str.getBytes("GB2312"), "utf-8");
return str;
}
} catch (Exception exception) {
}
try {
if (str.equals(new String(str.getBytes("ISO-8859-1"), "ISO-8859-1"))) {
str = new String(str.getBytes("ISO-8859-1"), "utf-8");
return str;
}
} catch (Exception exception1) {
}
try {
if (str.equals(new String(str.getBytes("GBK"), "GBK"))) {
str = new String(str.getBytes("GBK"), "utf-8");
return str;
}
} catch (Exception exception3) {
}
return str;
}
/**
* 判断是否为空
*
* @param str
* @return
*/
public static boolean isEmpty(String str) {
// 如果字符串不为null,去除空格后值不与空字符串相等的话,证明字符串有实质性的内容
if (str != null && !str.trim().isEmpty()) {
return false;// 不为空
}
return true;// 为空
}
方式二:
import java.io.UnsupportedEncodingException;
/**
* 转换字符串的编码
*/
public class ChangeCharset {
/** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */
public static final String US_ASCII = "US-ASCII";
/** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 */
public static final String ISO_8859_1 = "ISO-8859-1";
/** 8 位 UCS 转换格式 */
public static final String UTF_8 = "UTF-8";
/** 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序 */
public static final String UTF_16BE = "UTF-16BE";
/** 16 位 UCS 转换格式,Little-endian(最高地址存放低位字节)字节顺序 */
public static final String UTF_16LE = "UTF-16LE";
/** 16 位 UCS 转换格式,字节顺序由可选的字节顺序标记来标识 */
public static final String UTF_16 = "UTF-16";
/** 中文超大字符集 */
public static final String GBK = "GBK";
/**
* 将字符编码转换成US-ASCII码
*/
public String toASCII(String str) throws UnsupportedEncodingException{
return this.changeCharset(str, US_ASCII);
}
/**
* 将字符编码转换成ISO-8859-1码
*/
public String toISO_8859_1(String str) throws UnsupportedEncodingException{
return this.changeCharset(str, ISO_8859_1);
}
/**
* 将字符编码转换成UTF-8码
*/
public String toUTF_8(String str) throws UnsupportedEncodingException{
return this.changeCharset(str, UTF_8);
}
/**
* 将字符编码转换成UTF-16BE码
*/
public String toUTF_16BE(String str) throws UnsupportedEncodingException{
return this.changeCharset(str, UTF_16BE);
}
/**
* 将字符编码转换成UTF-16LE码
*/
public String toUTF_16LE(String str) throws UnsupportedEncodingException{
return this.changeCharset(str, UTF_16LE);
}
/**
* 将字符编码转换成UTF-16码
*/
public String toUTF_16(String str) throws UnsupportedEncodingException{
return this.changeCharset(str, UTF_16);
}
/**
* 将字符编码转换成GBK码
*/
public String toGBK(String str) throws UnsupportedEncodingException{
return this.changeCharset(str, GBK);
}
/**
* 字符串编码转换的实现方法
* @param str 待转换编码的字符串
* @param newCharset 目标编码
* @return
* @throws UnsupportedEncodingException
*/
public String changeCharset(String str, String newCharset)
throws UnsupportedEncodingException {
if (str != null) {
//用默认字符编码解码字符串。
byte[] bs = str.getBytes();
//用新的字符编码生成字符串
return new String(bs, newCharset);
}
return null;
}
/**
* 字符串编码转换的实现方法
* @param str 待转换编码的字符串
* @param oldCharset 原编码
* @param newCharset 目标编码
* @return
* @throws UnsupportedEncodingException
*/
public String changeCharset(String str, String oldCharset, String newCharset)
throws UnsupportedEncodingException {
if (str != null) {
//用旧的字符编码解码字符串。解码可能会出现异常。
byte[] bs = str.getBytes(oldCharset);
//用新的字符编码生成字符串
return new String(bs, newCharset);
}
return null;
}
public static void main(String[] args) throws UnsupportedEncodingException {
ChangeCharset test = new ChangeCharset();
String str = "This is a 中文的 String!";
System.out.println("str: " + str);
String gbk = test.toGBK(str);
System.out.println("转换成GBK码: " + gbk);
System.out.println();
String ascii = test.toASCII(str);
System.out.println("转换成US-ASCII码: " + ascii);
gbk = test.changeCharset(ascii,ChangeCharset.US_ASCII, ChangeCharset.GBK);
System.out.println("再把ASCII码的字符串转换成GBK码: " + gbk);
System.out.println();
String iso88591 = test.toISO_8859_1(str);
System.out.println("转换成ISO-8859-1码: " + iso88591);
gbk = test.changeCharset(iso88591,ChangeCharset.ISO_8859_1, ChangeCharset.GBK);
System.out.println("再把ISO-8859-1码的字符串转换成GBK码: " + gbk);
System.out.println();
String utf8 = test.toUTF_8(str);
System.out.println("转换成UTF-8码: " + utf8);
gbk = test.changeCharset(utf8,ChangeCharset.UTF_8, ChangeCharset.GBK);
System.out.println("再把UTF-8码的字符串转换成GBK码: " + gbk);
System.out.println();
String utf16be = test.toUTF_16BE(str);
System.out.println("转换成UTF-16BE码:" + utf16be);
gbk = test.changeCharset(utf16be,ChangeCharset.UTF_16BE, ChangeCharset.GBK);
System.out.println("再把UTF-16BE码的字符串转换成GBK码: " + gbk);
System.out.println();
String utf16le = test.toUTF_16LE(str);
System.out.println("转换成UTF-16LE码:" + utf16le);
gbk = test.changeCharset(utf16le,ChangeCharset.UTF_16LE, ChangeCharset.GBK);
System.out.println("再把UTF-16LE码的字符串转换成GBK码: " + gbk);
System.out.println();
String utf16 = test.toUTF_16(str);
System.out.println("转换成UTF-16码:" + utf16);
gbk = test.changeCharset(utf16,ChangeCharset.UTF_16LE, ChangeCharset.GBK);
System.out.println("再把UTF-16码的字符串转换成GBK码: " + gbk);
String s = new String("中文".getBytes("UTF-8"),"UTF-8");
System.out.println(s);
}
}
java字符串转成utf-8_将字符串的编码格式转换为utf-8相关推荐
- java String中文字符串分割成数组 中文字符串分割成一定长度的字符串数组
java String中文字符串分割成一定长度的字符串数组 /*** 几个字一组 变量控制 大于零有意义*/ int num = 6; /*** 待操作的字符串*/ String str = &quo ...
- Java 将字符串拆分成数组,实现字符串组合
将字符串拆分成数组和实现字符串组合 不能使用语言的基本分割组合函数(如 Java 的 String.split, php 的 explode 和 implode) 1) 字符串拆分成字符串数组,如&q ...
- Oracle的字符串转换成二进制,将二进制字符串解析为文本/字符
我可能忽略了一些愚蠢的东西,但我从来没有必要在代码中处理二进制文件,并认为在加密程序中练习它是个好主意, .长话短说,我能够将字符串转换为二进制(以字符串的形式),但无法弄清楚如何做相反的操作.将二进 ...
- php 将一个字符串转换成数组,PHP将一个字符串转换成数组
PHP将一个字符串转换成数组,支持中文/** * 将一个字符串转换成数组,支持中文 * @param string $string 待转换成数组的字符串 * @return string 转换后的数组 ...
- mysql 字符串拆分成表_Mysql实现字符串分割功能,将字符串分割为多行数据
在Java中我们可以通过String对象的split方法将字符串按指定字符分割为字符串数组,但是MySQL中没有为我们提供字符串分割功能,今天在工作中遇到了这种需求,找到了解决办法,分享给大家 场景: ...
- go json字符串转换成结构体,json字符串数组转换成切片
例子1:把字符串转换成结构体:{"FromUid":"100","FromName":"HANASHAN"} packa ...
- java将字符串转成对象_java – 将字符串转换为类对象
I am storing a class object into a string using toString() method. Now, I want to convert the string ...
- java字符串拆分成数组_Java StringUtils字符串分割转数组的实现
Java StringUtils字符串分割转数组的实现 发布于 2020-6-7| 复制链接 摘记: 我们在日常开发时会经常遇到将一个字符串按照指定的字符进行分割.这时,我们往往会想到使用str.sp ...
- java 毫秒转成日期格式_java-将字符串和毫秒值转化为日期格式的几种方法
1. 将毫秒值转换为日期 public void demo1() { //获取当前时间毫秒值 long time = System.currentTimeMillis(); System.out.pr ...
- java 将字符串转化成输入流_JAVA将字符串变为输入流
JAVA将字符串变为输入流 关于字符串转化为输入流,我找到2种方法: 用StringReader将字符串转化为Reader 用ByteArrayInputStream将字符串转化为InputStrea ...
最新文章
- Python语言学习之字母D开头函数使用集锦:del、dict使用方法之详细攻略
- php代码在线快速生成,PHPGEN在线代码生成器
- C++ WMI获取usb deviceID数据不全的问题 Win32_USBHub
- vim设置显示行号,vim跳转到文件头,文件尾
- ​NVIDIA针对数据不充分数据集进行生成改进,大幅提高CIFAR-10数据生成
- 文件字节输出流 java
- 20210627:力扣第247周周赛(上)
- 大数据工程师技能图谱
- WDS+MDT全自动部署系统、自动加域、自动计算机取名(SN序列号或MAC地址)
- 3D 贴图丢失的检测以及解决办法大全
- mysql自增长id用完了,怎么办?
- 敷衍的面试|记录问题仅供参考,不代表最终答案
- 1e9个兵临城下 - 容斥原理
- 哈尔滨工业大学计算机考研专业课,2020考研哈尔滨工业大学计算机考研考试科目...
- 基于机器学习的电力系统故障分类预测模型
- python 期货现货差价监测_基差,即期货与现货之间价格之差
- pyshark引用TShark时:TShark not found的解决方法
- Google重组团队进军AR领域
- 山东科技大学计算机试题答案,山东科技大学程序设计试卷
- Keil警告warning: #223-D: function “memcpy” declared implicitly
热门文章
- 1-SII--SharedPreferences完美封装
- ViewPager简单使用(四)实现图片轮播
- m8 windows android,HTC M8 WP版正式发布 通刷Android和WP8.1
- Arch linux uefi 启动盘,用UEFI安装ArchLinux 20140105
- 【事件相机整理】角点检测与跟踪总结
- TheFourthJavaText
- 小米note2 支付宝指纹支付 -10008
- 计算机设备的快捷命令,快速打开设备管理器的快捷键教程
- 英语Barklyite红宝石barklyite
- ORA-12899: value too large for column 问题解决