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. 专家点评Science:中英合作揭示拟南芥三萜化合物特异调控根系微生物组
  2. ios 状态蓝颜色控制
  3. Linux驱动之内核加载模块过程分析
  4. ABAP选择屏幕的例子
  5. ThinkPHP6项目基操(8.多应用模式)
  6. css旋转45度_css 渐变过渡2D
  7. 联系服务器安装系统教程,服务器安装系统教程
  8. gdc服务器系统备份和还原,FANUC镜像系统如何备份及恢复
  9. clickhouse Aggregatingmergetree表引擎
  10. Broken Keyboard(悲剧文本)
  11. 89c51交通灯汇编语言程序,89C51单片机交通灯汇编程序
  12. Redis开发与运维之第八章理解内存(四)
  13. python处理word页码_word——插入页码
  14. 路飞学城之 luffy (2 )
  15. 色彩设计基础知识整理
  16. 计算机科学与技术培养计划,计算机科学与技术专业培养方案(2017版).PDF
  17. html5 移动端手写签名,H5移动端项目实现手写签名功能 vue实现手写签名
  18. xp系统开机密码忘了如何进入系统重新设置密码--win10专业版
  19. GoogleTest使用教程
  20. 环形缓冲区RingBuff的代码实现

热门文章

  1. [2017-08-28]Abp系列——业务异常与错误码设计及提示语的本地化
  2. 从“制造”之城,到“智造”标杆,长沙何以站上发展新高地?
  3. win10远程计算机证书错误,win10系统下遇到Wi-Fi证书错误问题的几种解决方法
  4. C语言(静态链接库和动态链接库)
  5. 3.5mm接头(耳机头)到RCA接头(莲花头)转接线制作
  6. box-flex实现三等分布局
  7. Python PTA实验课 输出星期名缩写+字典的创建
  8. Linux du命令和df命令
  9. Error: PostCSS received undefined instead of CSS string核心解决方法
  10. 透视投影中已知两平面的单应矩阵,能否求出这两平面的夹角?