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. WebStorm 之 Cordova 环境搭建

    一.环境搭建 Cordova 环境配置之前,应先下载安装 Node.js ,中文官网:http://nodejs.cn/. 以管理员身份运行 cmd 命令行工具: 1.查看 Node.js 是否已安装 ...

  2. [网摘][医学影像] DICOM 和 NIFTI 基础知识与区别

    查找DICOM基础知识时,看到这篇文章里面写了一些关于使用深度学习进行医疗影像分析:文件格式篇.下文摘自:https://www.jiqizhixin.com/articles/2017-07-31 ...

  3. Multipathing for Software iSCSI

    see also:http://www.vmware.com/files/pdf/techpaper/vmware-multipathing-configuration-software-iSCSI- ...

  4. Linux常用命令之wget

    wget:从网络上下载文件到当前目录.

  5. ldd 以及 ld-linux.so.2

    最近跟编译工具干上了,可能是问题积累集中爆发的结果. 今天对 ld-linux.so.x 有很大兴趣,想对它多些了解,遂百度之.发现了指令 ldd. 关于 ldd 其实 ldd 是一个脚本,并不是一个 ...

  6. Jackson序列化日期类型的属性

    @JsonProperty("BankSettlementDate") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = ...

  7. Java DES 加解密("DES/CBC/PKCS5Padding")

    /** * DES加密 * * @param data 加密数据 * @param key 密钥 * @return 返回加密后的数据 */ public static byte[] desEncry ...

  8. VREP中使用其它Lua库

    VREP中的Regular API中有一些矩阵操作的函数,不过有时候还是不能满足计算需求,这时就需要在VREP中使用其它科学计算库(或者用Python/MATLAB之类的外部程序控制). 在这里下载L ...

  9. DOM4J对于XML的用法

    一.基本使用方式     语法     1.获取根元素 Element root = document.getRootElement();     2.获取某个元素下的子元素 Element db_e ...

  10. Quartz.NET开源作业调度框架系列(四):Plugin Job-转

    如果在Quartz.NET作业运行时我们想动态修改Job和Trigger的绑定关系,同时修改一些参数那么该怎么办呢?Quartz.NET提供了插件技术,可以通过在XML文件中对Job和Trigger的 ...