`
frankensteinlin
  • 浏览: 56456 次
  • 性别: Icon_minigender_1
  • 来自: ShangHai
社区版块
存档分类
最新评论

java 的字符编码

阅读更多
要了解java的字符编码首先要弄清楚几个概念:
字符: 人们使用的记号,抽象意义上的一个符号
字节: 一个八位的计算机存储空间
字符串: 多个字符的表现形式。

字符集: 定义了那些字符能够被表示。表达了一个范围。
编码  :规定了每个字符的存储方式。

通常所说的 UNICODE 是一个字符集。
          UTF-8 等 就是UNICODE的一种编码方式。

Java 中,字符串类 java.lang.String 处理的是 UNICODE 字符串,可以这么理解java中所有的字符串都以unincode作为它的内码存在:
假设我的java文件是以utf-8保存的:


      //打印出字符串在java中表示的“内码” unicode 字符编号
	public static void printStrCoding(String st){
	      for(int i=0;i<st.length();i++){
	    	   int j=(int)st.charAt(i);
	    	   System.out.println( Integer.toHexString(j));
	    	   
	       }
	}



       String name="中文";
       System.out.println(name.length());  // 打印出2
       
       byte[] bytes= name.getBytes("UTF-8" );
       
       System.out.println(bytes.length);  //打印出 6 
       for(int i =0;i<bytes.length;i++){
    	   int j=(int) bytes[i];
    	   System.out.println("coding: ------------------"+Integer.toHexString(j));
       }
      // utf-8 编码
      // coding: ------------------ffffffb8
      // coding: ------------------ffffffad
      // coding: ------------------ffffffe6
     //  coding: ------------------ffffff96
      // coding: ------------------ffffff87
       
       
       printStrCoding(name);
      //unicode 字符编号
      //4e2d
      //6587


另外做个测试,将中文两个字以GB2312编码保存在文件中:
       File f= new File("/home/linwei007/temp/aa");
       BufferedReader in = new BufferedReader(new FileReader(f));
       
       String rs=in.readLine();  //读取中文两个字
       
       
       System.out.println("coding: ------------------"+rs);  //打印出乱马
       printStrCoding(rs);  //打印结果明显java不认识此字符
       
       bytes= name.getBytes("GB2312" );   //以此编码取得字节串
       System.out.println(bytes.length);  //打印出2
       for(int i =0;i<bytes.length;i++){
    	   int j=(int) bytes[i];
    	   System.out.println("coding: ------------------"+Integer.toHexString(j));
       }
       //GB2312的编码:
       //coding: ------------------ffffffd6
       //coding: ------------------ffffffd0
       //coding: ------------------ffffffce
       //coding: ------------------ffffffc4
       
       String newString= new String(bytes,"GB2312");
       System.out.println("coding: ------------------"+newString);
       //打印出正确的中文.       

       printStrCoding(newString);
      //unicode 字符编号
      //4e2d
      //6587


  很明显无论那种编码,只要字符相同 它在java中的 unicode的字符编号是相同的。关键是要用正确的编码去读写。
0
0
分享到:
评论
1 楼 tuspark 2015-09-20  
关于java字符的内容,还有很多,例如这篇文章所讲:《Java字符的学习》

相关推荐

    java字符编码监听器

    Java字符编码监听器是Java Web开发中的一个重要概念,主要用于处理HTTP请求和响应中的字符编码问题。在Java Servlet规范中,提供了`SetCharacterEncodingFilter`这样的过滤器,用于确保请求参数和响应内容的正确编码...

    java字符编码错误整理大全

    ### Java字符编码错误整理大全 #### 一、概述 在Java开发过程中,字符编码问题是非常常见且容易引发一系列乱码问题的重要因素。本篇将详细梳理Java中的字符编码相关知识点,帮助开发者解决实际工作中遇到的各种...

    java字符编码问题

    ### Java字符编码问题详解 #### 一、引言 在Java开发过程中,字符编码问题是一个常见且容易引发各种隐藏问题的领域。不正确的字符编码处理可能导致数据丢失、乱码甚至是程序异常。本文将深入探讨Java中的字符编码...

    Java字符编码简介_动力节点Java学院整理

    Java字符编码是编程中至关重要的一个概念,尤其是在处理多语言数据时。本文主要探讨了Java中与字符编码相关的基础知识,包括ISO8859-1、GB2312、GBK、Unicode以及UTF编码。 首先,ISO8859-1是一种早期的单字节编码...

    关于JAVA字符编码:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换

    ### 关于JAVA字符编码:Unicode, ISO-8859-1, GBK, UTF-8 编码及相互转换 在Java开发过程中,字符编码是处理文本数据的基础,不同的编码方式会影响数据的存储、传输以及显示。本文将详细介绍几种常见的字符编码...

    java字符编码转换详细过程

    ### Java字符编码转换详细过程 #### 一、Java程序的生命周期与字符编码处理流程 Java程序的生命周期可以概括为三个主要阶段:编写源代码、编译源代码以及运行编译后的类文件。在这个过程中,涉及到多种字符编码的...

    JAVA字符编码系列三[借鉴].pdf

    Java字符编码系列三主要探讨了Java应用中遇到的编码问题,包括编码基础知识、Java与系统软件、URL、工具软件等方面的处理。文章通过“中文”二字举例,解释了不同编码方式如GB2312、Unicode、UTF-8的表示方法。 1. ...

    java字符编码解析.zip

    Java字符编码解析是一个重要的主题,尤其对于移动开发,如Android平台,因为良好的字符处理能力是构建国际化应用的基础。本文将深入探讨Java中的字符编码概念、常见的编码格式、以及如何在Java程序中正确处理字符...

    JAVA字符编码:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换

    ### JAVA字符编码详解:Unicode, ISO-8859-1, GBK, UTF-8 及其相互转换 #### 一、引言 在Java编程中,字符编码的管理和转换是一项基本而又重要的任务。不同的编码标准适用于不同的场景,而理解和掌握这些编码之间...

    java字符编码

    本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的...

    Java字符编码知识简介[参考].pdf

    Java字符编码知识是软件开发中不可或缺的一部分,尤其是在处理多语言环境和网络应用时。下面将详细介绍字符集、编码以及Java中的字符编码处理。 1. **什么是字符集?什么是编码?** 字符集(Charset)是一组抽象...

    Java字符编码原理.pdf

    Java字符编码原理主要涉及到字符集、编码转换以及在开发环境中如何正确配置编码格式,以确保程序处理各种语言,特别是中文时的正确性。在Java中,字符编码涉及到以下几个关键概念: 1. **字符集(Charset)**:字符...

    Java字符编码原理[参照].pdf

    Java字符编码原理主要涉及到字符集、编码转换以及在开发环境中如何确保正确的编码设置。Java作为跨平台的语言,处理字符编码的方式对于确保程序的兼容性和国际化至关重要。以下是对标题和描述中涉及的知识点的详细...

    Java字符编码转换过程说明

    Java字符编码转换是Java开发中一个重要的概念,涉及到数据的正确读取、存储和传输。在Java中,编码转换通常发生在以下几个场景: 1. **JVM启动与系统属性**: JVM启动时,会根据操作系统的环境设置一些系统属性,...

    Java字符编码及获取文件编码

    在Java编程语言中,字符编码是一个至关重要的概念,它涉及到数据的存储、处理和传输。字符编码决定了如何将字符(如字母、数字、符号)转换为数字表示,以便计算机能够理解并操作它们。本篇文章将深入探讨Java中的...

    java_字符编码 Javajava_字符编码问题

    ### Java 字符编码详解 #### 一、Java 字符编码基础概念 在深入探讨 Java 字符编码的问题之前,我们先来了解一下字符编码的基本概念。字符编码是计算机内部表示字符的一种方式,它涉及到如何将人类可读的文字转换...

    Java字符集编码简记

    本文将围绕“Java字符集编码简记”这一主题,深入探讨相关知识点,并结合标签“源码”和“工具”,探讨在实际开发中如何运用和处理字符编码问题。 首先,我们需要理解字符集的概念。字符集是一系列符号的集合,例如...

    语言程序设计资料:java字符编码.doc

    语言程序设计资料:java字符编码.doc

    Java字符集和编码

    UTF-8(Unicode Transformation Format-8)是一种可变长度的字符编码格式,主要用于在网络中快速传输Unicode字符。UTF-8的基本原理是根据Unicode字符的范围,将其映射成不同长度的编码,具体规则如下: - 每个英文...

    JAVA字符编码问题总结

     上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。  ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),...

Global site tag (gtag.js) - Google Analytics