经常因为字符编码的问题而去网上搜一些改变字符编码的东西,很麻烦,这次总结了一下比较全的改变字符编码的方法以供参考。代码如下:

代码块

import java.io.UnsupportedEncodingException;public class CharsetUtil {/** 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;}
}

其中changeCharset 改变的是系统的默认编码,可用这种方法获取从浏览器中getPost获取的数据

userid = charset.changeCharset(userid,"ISO-8859-1","UTF-8");

java中改变字符串编码相关推荐

  1. [转载] Java中的字符串处理

    参考链接: Java中的StringBuffer appendCodePoint()方法以及示例 JDK8在线Api中文手册 JDK8在线Api英文手册 Java中的字符串处理 1.1 String类 ...

  2. Java中的字符串程序

    String is the most widely used class in java programming. That's why String programs are used in jav ...

  3. 图说:为什么Java中的字符串被定义为不可变的

    转载自 图说:为什么Java中的字符串被定义为不可变的 字符串,想必大家最熟悉不过了,通常我们在代码中有几种方式可以创建字符串,比如:String s = "Hollis";这时, ...

  4. java 转码%2f%_JS和JAVA中常用的编码转码函数

    js中escape,encodeURI,encodeURIComponent函数和unescape,decodeURI和decodeURIComponent函数的功能 1.escape方法对Strin ...

  5. java输入一串字符串反转_反转Java中的字符串

    java输入一串字符串反转 Reverse a String in java is a good coding related interview question. I have seen inte ...

  6. java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号

    java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号 介绍 数据库中很多字段都会限制长度,为了方便用户使用,在前端界面给出限制长度的提示,看网上很多写的获取字符串长度都没有 ...

  7. 字符串压缩 java_如何在Java中压缩字符串?

    如何在Java中压缩字符串? 我使用GZIPOutputStream或ZIPOutputStream压缩字符串(我的2222235278130938882小于20),但压缩结果比原始字符串长. 在某个 ...

  8. Java中获取GBK编码汉字的拼音首字母(包括生僻字)

    Java中获取GBK编码汉字的拼音首字母(包括生僻字) 前言 代码 结果 前言 网上关于Java中获取汉字的拼音首字母的方法很多,但大多基于GB2312的汉字所属编码位置判断方法,现有一种基于GBK编 ...

  9. java 中操作字符串都有哪些类?它们之间有什么区别?

    java 中操作字符串都有哪些类?它们之间有什么区别? String.StringBuffer.StringBuilder String : final修饰,String类的方法都是返回new Str ...

最新文章

  1. 一个DIV调用多个CSS样式
  2. webpage not available是什么意思_MySQL很想啊,为什么还要有noSQL?
  3. Android layout布局属性、标签属性总结大全
  4. POJ 3320 Jessica's Reading Problem (尺取)
  5. [云炬创业管理笔记]第一章测试3
  6. *【洛谷 - P1025】数的划分(dfs 或 dp 或 母函数,第二类斯特林数Stirling)
  7. matlab字符串数组里里固定格式的内容,字符串数组和字符数组中的文本
  8. 红米note3支持html,红米Note3什么配置参数?红米Note3标配有什么?
  9. php打开retmsg,PHP截取发动短信内容的方法
  10. 织梦本地调试运行PHP不显示图片,织梦CMS手机端不显示图片的原因及解决方法!...
  11. Java-密钥keytool及KeyStore的使用
  12. STM32学习心得三十一:485通信原理及实验
  13. java实现网页结构分析,网页列表发现
  14. 前端性能优化-优化大量图片加载超大图片加载(附懒加载实现方案)
  15. wifi虚拟服务器怎么设置方法,虚拟路由器如何设置
  16. python斜杠用法_Python中正反斜杠(‘/’和‘\’)的意义与用法
  17. 带你开发个转盘抽奖小游戏【附源码】
  18. CAD与3D建模软件:有什么区别?
  19. 匿名软件竟成网络侵权避风港
  20. archlinux配置conky

热门文章

  1. SAP移动类型103解析
  2. 逐鹿东南亚,Lazada增长飞轮再加速
  3. 《庆余年》,腾讯视频、爱奇艺为“互联网黑产”背锅的一出戏
  4. 安卓存储性能测试软件,安卓版PCMark存储性能测试:魅族Pro 5/Pro 6都逆袭S7 edge了...
  5. 一分钟教你学会python_十分钟教你学会python编写小游戏
  6. 苹果a10处理器_iPhone运行安卓系统卡成翔,苹果A系处理器彻底跌落神坛!
  7. 俄罗斯计算机科学留学,中南大学计算机科学与技术、俄罗斯硕士留学有没有寒暑假班?...
  8. java项目大小_Java项目仅在调整窗口大小之后出现
  9. python测量不确定度_chaospy-不确定度量化的数值工具-Jonathan Feinberg Installation Example Usage...
  10. 【Python教程】读写ini配置文件的详细操作