1.要记住的事实

java的class文件是utf-8编码的,jvm使用utf-16,而java的字符串使用unicode编码

2.java支持的字符集

java支持的字符集可以通过java.nio.charset.Charset类查看到

1 for(String key:Charset.availableCharsets().keySet()){2 System.out.println(key);3 }

3.文件读取中的坑

a.读取外部文件

如果没注意外部文件的编码格式,我们的代码也没做处理的话,当默认的编码格式与文件的编码格式不一致时,就会出现中文乱码

1 InputStreamReader in1 = new InputStreamReader(new FileInputStream("a.txt"));2 InputStreamReader in2 = new InputStreamReader(new FileInputStream("a.txt"), "UTF-8");

这里的in1就会采用当前环境默认的编码格式去读取a.txt,而in2指定使用UTF-8去读取a.txt,清楚外部文件的编码格式比较重要(约定大于配置:-))

获取环境默认的编码

1 System.out.println(Charset.defaultCharset());

win中一般系统默认的是GBK,IDE中是UTF-8

b.字符串与字节数组

常见转换方式是

1 "test".getBytes();

实际上等价于

1 "test".getBytes(Charset.defaultCharset());

字节数组到字符串

1 new String("test".getBytes(Charset.defaultCharset()));

c.字符串迷局

1 new String(input.getBytes("ISO-8859-1"),"Big5");

说法1:把input字符串从ISO-8859-1编码方式转换成Big5编码方式

说法2:我以为你给我的是Big5,你却给我ISO-8859-1,而系统只认识unicode

4.如何跳过坑

处理字符串及文件读写时,时刻清楚:字符串编码(unicode)、环境编码(UTF-8?GBK?)、外部文件编码

自动检测文件编码:http://www.iteye.com/topic/108540

原文:http://www.cnblogs.com/ikuman/p/3659273.html

java中文getbytes为3,java 中文乱码问题相关推荐

  1. Android(java)学习笔记155:中文乱码的问题处理(qq登录案例)

    1. 我们在之前的笔记中LoginServlet.java中,我们Tomcat服务器回复给客户端的数据是英文的"Login Success","Login Failed& ...

  2. JAVA代码实现Excel下载,中文名称乱码问题

    #JAVA代码实现Excel下载,中文名称乱码问题 ##第一:检查乱码的服务器版本是否在代码中进行处理 ###处理方式: if(request.getHeader("user-Agent&q ...

  3. linux jdk 编码格式,java中文编码(字符集)分析-中文乱码分析及解决方案

     注:本文部分内容摘自网络,摘抄内容版权归原作者所有. 1.     背景知识 1.1.    Http协议 1.1.1.  URL和URI 1.1.2.  媒体类型定义 HTTP在 Conten ...

  4. java压缩----使用sun JDK压缩--中文的文件名会是乱码

    经测试,文件名为中文的压缩完为乱码,测试过.txt 的文件类型,中文内容可以正常显示. 所以这种方案不可行. import java.io.File; import java.io.IOExcepti ...

  5. Java读取properties配置文件时,中文乱码解决方法

    转载自 关于java.util.Properties读取中文乱码的正确解决方案(不要再用native2ascii.exe了) 碰到了用java.util.Properties读取中文内容(UTF-8格 ...

  6. java locale中文_locale错误导致Java中文乱码错误的总结

    线上执行MapReduce任务计算时,经过排查发现了某些服务器计算的数据出现中文乱码问题,但是服务器的配置是完全一致的.由于我们使用的key可能包含中文,中文乱码问题体现在每次合并map记录的时候计算 ...

  7. java读取.properties文件及解决中文乱码问题

    java读取.properties文件及解决中文乱码问题 参考文章: (1)java读取.properties文件及解决中文乱码问题 (2)https://www.cnblogs.com/helloq ...

  8. java accept charset_springmvc中post请求中文乱码问题

    StringHttpMessageConverter源码: /* * Copyright 2002-2016 the original author or authors. * * Licensed ...

  9. 微信小程序java中文乱码_如何解决微信小程序显示中文无法上传或者出现乱码的问题?...

    今天小编给大家讲解如何解决微信小程序显示中文无法上传或者出现乱码的问题?有需要或者有兴趣的朋友们可以看一看下文,相信对大家会有所帮助的. 在formData中对文字进行编码,使用encodeURI() ...

最新文章

  1. 窗口缩放导致页面排版错乱的解决方法
  2. 在asp.net中使用加密数据库联接字符串
  3. 树莓派4B设置静态IP
  4. 如何在 SAP 电商云 Spartacus 代码里获取 Routes 路由信息
  5. 使用XmlTextWriter生成XML文件的方法
  6. 小知识-美元石油体系
  7. c++求n的几次方_2.七年级数学:怎么求mn+mn的值?完全平方公式,用配方法
  8. iOS开发——基础篇——iOS开发 Xcode8中遇到的问题及改动
  9. php解析定时任务格式,php 实现定时任务简单实现
  10. 转载:eclipse 搭建SSH项目(第二篇,有具体的项目例子)
  11. 使用Java生成PDF文件
  12. ASP.NET 页面双向静态化
  13. Spring Boot 菜鸟教程 2 Data JPA
  14. 洛谷P3853 路标设置
  15. 大专计算机办公应用,计算机办公软件应用论文
  16. 大众新能源电动车ID.3ID.4技术培训教材手册维修手册电路图
  17. 74LS 系列 名称解释
  18. 【DP】洛谷 P1510 精卫填海
  19. java繁体_Java-汉字繁体拼音转换
  20. 在线课程开放平台API分析及脚本制作(一)

热门文章

  1. 老男孩为网友工作疑难问题解答一例
  2. C#如何获得当前程序所在的目录
  3. SQL语句遍历树结构的数据表
  4. Oracle存储过程中执行DDL操作
  5. django xadmin 1不在可用的选项中
  6. javascript高级程序设计第3版——第6章 面向对象的程序设计
  7. [CQOI2014]和谐矩阵
  8. 关于打印机共享的注意事项——又被叫去修电脑了
  9. memcache分布式 [一致性hash算法] 的php实现
  10. 关于appstore多语言版本,不可不看!