问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java后台怎么解决编码问题

发布网友 发布时间:2022-04-20 19:32

我来回答

1个回答

热心网友 时间:2022-04-18 08:38

不用实现和继承,自己封装就可以了,想要什么转换自己对应封装方法就可以了,这样自己用起来也方便点。再往上找了个例子,你看看希望能帮到你!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);
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
那个手机软件可以免费连联通的wifi啊 杀死比尔1里 女主角跟日本女人打的时候穿的那个黄色的鞋子是什么牌子的... 杀死比尔I精彩花絮 ro1压力变送器哪里能维修 手机可以转换繁体字直接同步到QQ网名上吗? 关于初中生之间打架,老师、家长和孩子之间应该怎么解决问题?老师的处 ... 超市买牙刷如有艾兹刷牙会感染吗。 象屿珑庭交通方便吗?应该怎么过去? ...扭伤的时候肿的和一个鸡蛋那么大,去拍了片,骨头没问题,后来去中医院... 脚扭伤快两个月了,骨头没事,走路还是疼,稍微以活动就肿,休息一晚上就好... Java做后台和pHP后台哪个更好 Java 后台开发值得注意的地方有哪些 用JAVA怎么做前台和后台管理 目前主流的java后台开发技术是哪些 当前主流的java后台开发技术是哪些 学JAVA后台要学哪些?学习顺序要怎样才好? 怎么让java程序在后台运行 Java后台如何一直运行一个后台 是不是一般大型网站后台用java? 用word做名片的话如何制作和打印双面的呢? windows怎样让java后台运行 名片全能王如何使用?使用名片全能王制作名片的方法 java开发后台的框架有哪些 java 后台 前台 指的是什么啊? java后台开发的前景 谁知道做名片是用什么软件做的? 胡子能刮吗 多少岁可以刮胡子? 17岁可以刮胡子么,刮了又怎么样 我男的 16岁 长的胡子能刮吗? excel如何将竖着的数据变成横的? 怎样把竖向表格改成横向 excel中大量数据如何将其从竖着变成横排? 买家号已处理评价多久可以消除 买家已经确认收货了,还评价了,申请退货退款,成... 淘宝买家维权退款给买家后差评会消失吗? 买家给了差评,已经生效,如果退货退款成功后差评... 已评价后买家申请退款评价会消失吗 淘宝买家评价被处理了怎么办 滚筒洗衣机和全自动洗衣机哪个好? 洗衣机波轮好还是滚筒好? 全自动的洗衣机好还是滚筒的好呀? 全自动洗衣机滚筒好还是波轮好 一针见血通俗解答! 全自动洗衣机和滚筒洗衣机到底哪种好? 全自动洗衣机是滚筒好还是波轮的好 滚筒洗衣机好还是全自动洗衣机好? 全自动洗衣机滚筒好还是波轮好?有什么区别? 滚筒式的洗衣机和普通全自动洗衣机的区别,老年人... 洗衣机到底是滚筒的好还是全自动的好 是滚筒洗衣机好用还是全自动洗衣机好用?