我们写代码有时候会出现这种情况:在自己电脑上运行的很正常,字符显示很完美,把自己的代码给别人或者换台机器运行,就会出现乱码的现象,这是为什么呢?都是编码方式在作祟,不同的机器或java项目可能使用的默认编码不同。

如何查看eclipse 中java项目的编码方式:

如图右击项目名称,然后选择propertices选项,就可以了

我的这个项目的默认编码方式是utf-8 ,下面对java的编码方式总结一下,记录一下:

import java.io.UnsupportedEncodingException;public class EncodeDemo {public static void main(String[] args) throws UnsupportedEncodingException{String s = "我爱ABC";byte[] byte1 = s.getBytes();//以系统默认的编码方式转换为字节流System.out.print("  默 认 编 码 输 出 :");for(byte b : byte1){System.out.print(Integer.toHexString(b & 0xff) + " ");}System.out.print("\nutf-8编码输 出:");byte[] byte2 = s.getBytes("utf-8");//以utf-8的编码转换for(byte b : byte2){System.out.print(Integer.toHexString(b & 0xff) + " ");}/** 以上两个输出说明该工程使用的默认编码是utf-8* 该编码格式一个汉字栈占用三个字节,英文字母占用一个字节*/System.out.print("\n  gbk编码输出:");byte[] byte3 = s.getBytes("gbk");for(byte b : byte3){System.out.print(Integer.toHexString(b & 0xff) + " ");}/** gbk编码格式,中文占两个字节,英文字母占一个字节*/System.out.print("\nutf-16be输出:");/** java使用的双字节编码(utf-16be)* 中文英文都是两个字节*/byte[] byte4 = s.getBytes("utf-16be");for(byte b : byte4){System.out.print(Integer.toHexString(b & 0xff) + " ");}/** 当我们吧utf-16be编码格式的byte4转换为数组时,不指定编码方式,而是使用* 项目默认编码方式,发现打印出来的是乱码,之后将编码方式改为上面utf-16be的* 格式再打印发现没有乱码。同理,如果我们想将byte3转换为字符串再输出,则需要* 使用对应的gbk的编码方式,这样才不会乱码*/System.out.println();String s1 = new String(byte4);//使用项目默认的编码(utf-8)System.out.println(s1);String s2 = new String(byte4,"utf-16be");System.out.println(s2);}
}

代码中b & 0xff 操作是为了去掉整数高24位多余的0,因为我们知道一个字节8位,而int是四个字节,所以byte转换为int后就变成了32位,但高24位都是0,影响视觉效果,所以用这个操作把它去掉就好了。输出结果如下图:

eclipse如何查看当前项目的编码方式+java编码方式总结相关推荐

  1. 安卓入门-动画(Animation)(由简单的单一动画到复杂的时间顺序叠加动画)(XML实现方式+JAVA实现方式)

    文章目录 三个要做的动画 理论知识 1. XML文件设置 2.JAVA代码设置 具体实例实现(JAVA代码方式) 动画一(赛车的外内外走线) 动画二(转向不足的动画) 动画三(转向过度的动画)(复杂的 ...

  2. 5.Maven和Eclipse整合(两种方式进行插件的安装),Maven相关设置,Eclipse下创建Maven项目

     1  第一种方式是:在连网的情况下,通过在helpàInstall下安装. 新的地址是:http://download.eclipse.org/technology/m2e/releases 2 ...

  3. SpringBoot项目在eclipse中能运行,部署到服务器 nohup java -jar 方式运行就无法显示报错

    SpringBoot项目在eclipse中能运行,部署到服务器 nohup java -jar 方式运行就无法显示报错: *************************** APPLICATION ...

  4. 在eclipse中创建web项目(非myeclipse)

    如何创建dynamic web project项目 本文的演示是从本地文件创建dynamic web project,从svn检出的同时创建dynamic web project于此类似.我们推荐使用 ...

  5. 不用copy代码--eclipse使用git提交项目-转

    原文地址:http://blog.csdn.net/u014079773/article/details/51595127 准备工作: 目的:eclipse使用git提交本地项目,提交至远程githu ...

  6. java编码规范文档 下载_软件项目实训及课程设计指导——制定待开发项目中各种文档的规范...

    软件项目实训及课程设计指导--制定待开发项目中各种形式文档的规范 1.制定对课程设计项目开发过程中的规范性要求 (1)从"形式"到"内容"两个方面控制和要求开发 ...

  7. eclipse 如何关联git_作为一名初学Java者 如何做简单的Java项目

    作为一名初学Java者而言,如何做简单的Java项目?想要更有效率的学习Java技术,理论中穿插项目练习很有必要.但项目练习要在你掌握了一定的技术之后才能做的,它是用来加深你对技术理解的. 就拿Jav ...

  8. response设置编码的三种方式以及比较

    https://blog.csdn.net/u010653908/article/details/53994021 response设置编码的三种方式以及比较 2017年01月03日 14:12:46 ...

  9. Eclipse+Maven创建web项目

    有时候我们想用eclipse+maven创建web项目,怎么操作呢,下面我来给大家来分享一下方法 所需工具 已经安装了maven插件的elipse 步骤 1.打开eclipse,右键new--othe ...

最新文章

  1. 的主机名_Mac教程——修改mac 下主机名、电脑名、局域网主机名
  2. spring boot: GlobalDefaultExceptionHandler方法内的友好错误提示,全局异常捕获
  3. Linux - Sysstat [ All-in-One System Performance and Usage Activity Monitoring Tool For Linux]
  4. python穷举法搬砖_python 穷举法 算24点(史上最简短代码)-阿里云开发者社区
  5. 视频 + PPT | 财富管理转型,券商如何精细化运营?
  6. selenium自学笔记---ecshop购买脚本 xpath定位元素(下拉框,单选框)
  7. Linux计划任务(at,crontab)
  8. 日常撕逼:React和Vue到底谁更牛?
  9. [LeetCode] 234. Palindrome Linked List 回文链表
  10. sap产品图谱 - road to sap.pdf_蛇胆陈皮胶囊化学成分及指纹图谱研究
  11. 今天用pro安装nginx+php+mysql出现故障的解决方法
  12. 数据结构上机实践第五周项目3 - 括号的匹配
  13. 434.字符串中的单词数
  14. 简单版俄罗斯方块程序代码c语言,俄罗斯方块C语言程序代码.DOC
  15. 计算机网络 简单网络管理协议 SNMP
  16. Django在Terminal中python manage.py startapp myapp报name ‘os‘ is not defined
  17. 电商系统,商品属性表和功能设计,可用于各种实体的属性
  18. java中整数的整数次方_数值的整数次方
  19. echart横轴文字显示省略号_Echarts X轴内容过长自动隐藏,鼠标移动上去显示全部名称方法...
  20. 重庆公需科目快速看视频方法自动学习 python

热门文章

  1. 【详细】芯片设计全流程(包括每个流程需要用到的工具以及需要参与的工作人员)
  2. 论根治牙疼远离拔牙的牙膏配方
  3. linux ipv6 设置
  4. 北京博奥智源科技有限公司分析关于系统开发渗透测试
  5. ubuntu安装sqoop2
  6. 万人直播网络架构与CDN网络
  7. 【ML】numpy meshgrid函数使用说明(全网最简单版)
  8. java swing单选按钮_Swing如何创建和使用单选按钮?
  9. laravel图片和文件的上传
  10. 导师长期霸凌致博士生自杀,IEEE宣布开除其Fellow资格!