java平台的编码问题 getByte()所用编码

2013-09-30 11:31:22|  分类: java |  标签:java  编码  getbytes()  |字号 订阅

 
 

众所周知java的一大优势在于跨平台性,这一特性体现在统一编码(unicode),但是不同的开发工具,不同的编码,是如何做到的呢?

今天我就为大家简单讲一下,.java文件可以是各种编码,比如 GB2312、ISO-8859-1、UTF-8等等,java会根据(.java)文件生成对应的(.class)文件,而生成的(.class)文件使用的是统一编码(unicode),所以使用自己操作系统默认编码(比如GB2312)去打开unicode编码文件,看到的都是乱码。

好了,前提介绍完毕,下面进入主题。String类下有个getBytes()方法,又有有参数和编码的无参数的区分。

1.有参数的就是要转换成参数设定编码的字节。

2无参数的getBytes()是个很有意思的方法,很有个性,先看一下java API是如何解释的,“Encodes this String into a sequence of bytes using the platform's default charset, storing the result into a new byte array.”,中文意思就是:“使用平台的默认字符集将此 
String编码为 byte 序列,并将结果存储到一个新的 byte 数组中。”这里所说的平台难道是操作系统?“平台的默认编码格式”就是指操作系统所用的编码?NO,这里所说的“平台的默认编码”是指当前.java文件的编码。比如有一个名为Test.java的.java文件,使用的编码是UTF-8,那么,使用String.getBytes()时,默认使用的编码就是UTF-8。再比如还有一个名为Text.java的.java文件,文件编码是“MS932”,当使用String.getByte()时,就会获得编码格式为“MS932”的byte数组。

总结:String.getBytes(),所谓的“使用平台默认编码”是指,使用(.java)文件所用编码。

等有时间的时候给大家上图片

【转】java平台的编码问题 getByte()所用编码的更多相关文章

  1. 基于java平台的常用资源整理

    这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.t ...

  2. 这里整理了基于java平台的常用资源

    这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.t ...

  3. 【IBM】Merlin 给 Java 平台带来了非阻塞 I/O

    Merlin 给 Java 平台带来了非阻塞 I/O 新增的功能大幅降低了线程开销 Java 技术平台早就应该提供非阻塞 I/O 机制了.幸运的是,Merlin(JDK 1.4)有一根几乎在各个场合都 ...

  4. Android和java平台 DES加密解密互通程序及其不能互通的原因

    网上的demo一搜一大堆,但是,基本上都是一知半解(包括我).为什么呢?我在尝试分别在两个平台加密的时候,竟然发现Android DES 加密和java DES加密的程序不能互通.就是加密的结果不一样 ...

  5. java平台的常用资源

    分离领域 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.thanks. 构建 这里搜集 ...

  6. Java平台与内存管理

    问题及答案来源自<Java程序员面试笔试宝典>第四章 Java基础知识 4.8Java平台与内存管理 1.为什么说Java是平台独立性语言? 平台独立性是指可以在一个平台上编写和编译程序, ...

  7. 三重Des对称加密在Android、Ios 和Java 平台的实现

    引言      如今手机app五彩缤纷,确保手机用户的数据安全是开发人员必须掌握的技巧,下面通过实例介绍DES在android.ios.java平台的使用方法: DES加密是目前最常用的对称加密方式, ...

  8. java平台利用jsoup开发包,抓取优酷视频播放地址与图片地址等信息。

    /********************************************************************************************  * aut ...

  9. 1.谈谈对Java平台的理解

    1.谈谈你对Java平台的理解 Java 本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“一次编译,到处运行”(Compile once,run anywhere),能够非常容易地获取跨 ...

随机推荐

  1. 解决IE兼容模式的方案

    在html头 加标签 强制使用最新的ie渲染 <meta http-equiv="X-UA-Compatible" content="IE=edge"&g ...

  2. Tomcat8配置进入管理端

    1:修改tomcat-users.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <tomcat ...

  3. 栈的实现与操作(C语言实现)

    栈的定义  1, 栈是一种特殊的线性表  2,栈仅能在线性表的一端进行操作  3,栈顶(Top): 同意操作的一端 同意操作的一端  4,栈底(Bottom): ,不同意操作的一端 不同意操作 ...

  4. ACE .i .inl文件(转)

    在ACE的源代码目录里,有源文件.cpp.头文件.h,我们还发现有以.i和.inl为扩展名的文件.其实,以.i和.inl为扩展名的文件是ACE源码中inline函数的存放形式. 在说明ACE中为什么采 ...

  5. Tomcat默认界面可导致版本信息泄露+管理后台爆破

    由于配置的Tomcat时,管理页面未进行删除或者权限角色配置,攻击者可以通过暴力猜解进入到管理后台,从而上传获取shell. Tomcat的默认工具manager配置,在很多的生产环境中由于基本用不到 ...

  6. 了解 node.js

    原文为: 我们为什么要使用NodeJS 写的好,就收藏于此,供学习之用. 科普文一则,说说我对NodeJS(一种服务端JavaScript实现)的一些认识,以及我为什么会向后端工程师推荐NodeJS. ...

  7. 解决 Class not found和Base table or view not found: 1051 问题

    1.解决class not found的方法: 如果你用的是homestead虚拟机,那么,你要到虚拟机下执行: composer dump-autoload 2.解决Base table or vi ...

  8. iOS手势的综合运用

    //自定义一个VIEW封装手势功能 // CustormView.m // gesterDemoo // // Created by ganchaobo on 13-7-13. // Copyrigh ...

  9. mysql8.0 Authentication plugin 'caching_sha2_password' cannot be loaded

    安装mysql8.0后使用navicat创建连接, 然后报如题所示警告.可参考如下解决方案: https://stackoverflow.com/questions/49194719/authenti ...

  10. 自定义cnblogs样式小结

     写在前面:  博客模版(皮肤)很多, 这里选择了一套相对"干净"的模版, 这套模版本身已经很好了, 简约大方, 在此基础上进行改动一下. 1.页面背景图源自网络. 2.回到顶部i ...