InputStreamReader read= new InputStreamReader(new FileInputStream(file),encoding);//编码格式

String newStr = new String(oldStr.getBytes(), "UTF-8");

java中的String类是按照unicode进行编码的,当使用String(byte[] bytes, String encoding)构造字符串时,encoding所指的是bytes中的数据是按照那种方式编码的,而不是最后产生的String是什么编码方式,换句话说,是让系统把bytes中的数据由encoding编码方式转换成unicode编码。如果不指明,bytes的编码方式将由jdk根据操作系统决定。

当我们从文件中读数据时,最好使用InputStream方式,然后采用String(byte[] bytes, String encoding)指明文件的编码方式。不要使用Reader方式,因为Reader方式会自动根据jdk指明的编码方式把文件内容转换成unicode 编码。

当我们从数据库中读文本数据时,采用ResultSet.getBytes()方法取得字节数组,同样采用带编码方式的字符串构造方法即可。 669749Hs

ResultSet rs;

bytep[] bytes = rs.getBytes();

String str = new String(bytes, "gb2312");

不要采取下面的步骤。

ResultSet rs;

String str = rs.getString();

str = new String(str.getBytes("iso8859-1"), "gb2312");

这种编码转换方式效率底。之所以这么做的原因是,ResultSet在getString()方法执行时,默认数据库里的数据编码方式为 iso8859-1。系统会把数据依照iso8859-1的编码方式转换成unicode。使用str.getBytes("iso8859-1")把数据还原,然后利用new String(bytes, "gb2312")把数据从gb2312转换成unicode,中间多了好多步骤。

从HttpRequest中读参数时,利用reqeust.setCharacterEncoding()方法设置编码方式,读出的内容就是正确的了。

Java String 类型编码转换相关推荐

  1. java string类型时间段 转换 date类型

    前言 string类型时间段 : 2019-08-30 14:01-16:01 org.apache.commons:commons-lang3 date format pattern yyyy-MM ...

  2. Java学习(4)—— 布尔类型、基本数据类型转换、基本数据类型和String类型的转换

    布尔类型 也叫Boolean类型,boolean只允许取true和false. boolean占一个字节. 适用于逻辑运算,流程控制语句. 有默认类型,是false.但是应该声明为成员变量或是静态变量 ...

  3. java string类型的初始化

    以下基本上是java string类型最常用的三种方法 new string()就不介绍了  基本等同于第三种 String a;  申明一个string类型的 a,即没有在申请内存地址,更没有在内存 ...

  4. Java 相同类型强制转换异常

    Java 相同类型强制转换异常 参考文章: (1)Java 相同类型强制转换异常 (2)https://www.cnblogs.com/LoveShare/p/11785056.html (3)htt ...

  5. int和String类型的转换

    int和String类型的转换 1. int转换为String类型 public static String valueOf(int i)返回int参数的字符串字符串表示形式.该方法是String类中 ...

  6. java string类型时间比较大小_Java String类型时间比较大小

    Java String类型时间比较大小,写了比较时间的函数,这里总结一下. package com.zz.bridge.impl; import java.text.DateFormat; impor ...

  7. java string设置编码_详解Java中String类型与默认字符编码

    为什么写这个 至于为什么要写这个,主要是一句mmp一定要讲,绕了一上午,晕死 Java程序中的中文乱码问题一直是一个困扰程序员的难题,自己也不例外,早在做项目时就遇到过很多编码方式的坑,当时想填来着, ...

  8. JAVA基本数据类型和String类型的转换

    1.基本类型转String类型 语法:将基本类型的值+"" 即可,如下图 编译运行结果: 2.String类型转基本数据类型 语法:通过基本类型的包装类调用parseXX方法即可, ...

  9. Java String类型数据的字节长度

    问题描述: 向Oracle数据库中一varchar2(64)类型字段中插入一条String类型数据,程序使用String.length()来进行数据的长度校验,如果数据是纯英文,没有问题,但是如果数据 ...

  10. java 编码解码_深入解析Java中的编码转换以及编码和解码操作

    一.Java编码转换过程 我们总是用一个java类文件和用户进行最直接的交互(输入.输出),这些交互内容包含的文字可能会包含中文.无论这些java类是与数据库交互,还是与前端页面交互,他们的生命周期总 ...

最新文章

  1. 《R语言初学指南》一2.8 参考文献
  2. 美国通过热像无人机找到失踪老人
  3. poj-1042 nyoj-30(Gone fishing)
  4. 2.5 Hive中外部表的讲解
  5. 第46届ICPC亚洲区域赛(沈阳)L-Perfect Matchings【dp,组合数学】
  6. BootstrapTable分页参数
  7. 转:70个漂亮实用的JavaScript和Ajax技术(有图有例子)
  8. MacBook Pro 如何删除多余专注模式?
  9. ERP系统“数字排产”功能,实现企业高效排产
  10. Spring Cloud Ribbon 详解
  11. 手机怎么把图片转成PDF格式?这个方法很好用
  12. 深信服 华为路由器 ipsce对接
  13. 基于Python实现并测试Modularity算法
  14. 谭波 oracle,行动营复盘
  15. KCP 协议 YES
  16. 2019世界顶级黑科技将在这里,跟大家见面
  17. APT - Advanced Package Tool
  18. android ijkplayer添加防盗链refer,截图,支持rtsp,修改底层增加截图功能,以及ijk播放的部分问题
  19. Python+花生壳搭建一个外网访问本地文件的服务器
  20. 微信小程序--代码包压缩策略

热门文章

  1. Oracle XDB组件的重建
  2. 关于Pycharm进行pytorch分布式训练代码
  3. 关于git push报hook declined
  4. coherence mysql_Coherence Step by Step 第三篇 缓存(四) 缓存数据源(翻译)
  5. TTL转HDMI 1.4,性能提升,pin to pin 芯片LT8618SXB
  6. 数字图像隐写术之卡方分布
  7. intel收购Altera
  8. Python 批量合并 Excel工作簿
  9. 微信公众号粉丝迁移代办最新流程
  10. linux 迁移类型,迁移到Linux前必须要知道的五个方面