`

字符码转换(一个小程序)

    博客分类:
  • java
 
阅读更多
package test;


public class TestB {
 static String zhongwen = "中文";
 static byte[] bytes = null;
 
 public static void main(String[] args) throws Exception {
  // GBK
  //main1();
  // utf-8
  //main2();
  // GBK-->utf-8-->GBK
  //main3();
  // GBK-->iso8859-1-->utf-8-->iso8859-1-->GBK
  main4();

 }
 // GBK
 public static void main1() throws Exception {
  bytes = zhongwen.getBytes("GBK");
  for (int i = 0; i < bytes.length; i++) {
   System.out.println(Integer.toHexString(bytes[i]));
  }
  System.out.println(new String(bytes, "GBK"));
 }
 // utf-8
 public static void main2() throws Exception {
  bytes = zhongwen.getBytes("utf-8");
  for (int i = 0; i < bytes.length; i++) {
   System.out.println(Integer.toHexString(bytes[i]));
  }
  System.out.println(new String(bytes, "utf-8"));
 }
 // GBK-->utf-8-->GBK
 public static void main3() throws Exception {
  
  bytes = zhongwen.getBytes("GBK");
  System.out.println("--------GBK----------");
  for (int i = 0; i < bytes.length; i++) {
   System.out.println(Integer.toHexString(bytes[i]));
  }

  bytes = zhongwen.getBytes("utf-8");
  byte [] bytes_copy = bytes;
  System.out.println("-------utf-8--------");
  for (int i = 0; i < bytes.length; i++) {
   System.out.println(Integer.toHexString(bytes[i]));
  }
  
  //错误的组装方法
  System.out.println("-------error GBK--------");
  zhongwen = new String(bytes, "GBK");
  System.out.println(zhongwen);
  bytes = zhongwen.getBytes("GBK");
  for (int i = 0; i < bytes.length; i++) {
   System.out.println(Integer.toHexString(bytes[i]));
  }
  //正确的组装方法
  System.out.println("-------GBK--------");
  System.out.println(new String(bytes_copy, "utf-8"));
 }
 // GBK-->iso8859-1-->utf-8-->iso8859-1-->GBK
 public static void main4() throws Exception {
  
  //最开始是GBK
  bytes = zhongwen.getBytes("GBK");
  System.out.println("--------GBK----------");
  for (int i = 0; i < bytes.length; i++) {
   System.out.println(Integer.toHexString(bytes[i]));
  }
  
  //被组装成了iso8859-1,new出的字符串对象有问题,但是字节内容没变
  System.out.println("-------iso8859-1--------");
  zhongwen = new String(zhongwen.getBytes("GBK"), "iso8859-1");
  System.out.println(zhongwen);
  bytes = zhongwen.getBytes("iso8859-1");
  for (int i = 0; i < bytes.length; i++) {
   System.out.println(Integer.toHexString(bytes[i]));
  }
  //转换成utf-8在网络上传输,一个byte转换为两个字节,所以一共8个字节
  bytes = zhongwen.getBytes("utf-8");
  System.out.println("-------utf-8--------");
  for (int i = 0; i < bytes.length; i++) {
   System.out.println(Integer.toHexString(bytes[i]));
  }
  
  //server端接收到utf-8,首先组装成iso8859-1,new出的字符串对象有问题,显示4个问号
  System.out.println("-------server--iso8859-1------");
  zhongwen = new String(bytes, "utf-8");
  System.out.println(zhongwen);
  bytes = zhongwen.getBytes("iso8859-1");
  for (int i = 0; i < bytes.length; i++) {
   System.out.println(Integer.toHexString(bytes[i]));
  }
  
  //以iso8859-1得到字节,并组装成GBK
  System.out.println("-------GBK--------");
  System.out.println(new String(bytes, "GBK"));
 }

 

 public static void ____________________main() throws Exception {
  System.out.println(System.getProperty("file.encoding"));
  System.out.println(System.getProperty("user.language"));
  System.out.println(System.getProperty("user.region"));
 }

}

/*
--------GBK----------
ffffffd6
ffffffd0
ffffffce
ffffffc4
-------iso8859-1--------
????
ffffffd6
ffffffd0
ffffffce
ffffffc4
-------utf-8--------
ffffffc3
ffffff96
ffffffc3
ffffff90
ffffffc3
ffffff8e
ffffffc3
ffffff84
-------server--iso8859-1------
????
ffffffd6
ffffffd0
ffffffce
ffffffc4
-------GBK--------
中文
*/



分享到:
评论

相关推荐

    ascci码转换成字符

    从压缩包文件名称“ASCII转换为字符”来看,这可能是一个工具或程序,其主要功能就是接受ASCII码作为输入,并将其显示为相应的字符。这样的工具可以帮助开发者、程序员或普通用户快速地查看ASCII码对应的字符,或者...

    Delphi—字符串与内码相互转换的小程序

    在这个“Delphi—字符串与内码相互转换的小程序”中,开发者利用Delphi的强大学习和开发能力,构建了一个实用工具,能够帮助用户理解字符串和内码之间的转换机制。 在计算机科学中,字符串是由字符组成的序列,而...

    输入一个字符,转换成大写字母输出

    最后,"大小写转换.EXE"是一个可执行文件,意味着经过编译和链接后,这个汇编程序已经被转化为可以直接在操作系统上运行的二进制代码。在Windows系统中,.EXE文件是应用程序的标准格式。 总结来说,这个任务涉及了...

    ASCII码与字符转换源代码

    例如,将一个字符转换成对应的ASCII码值,或者将一个ASCII码值转换成相应的字符。 #### C++中的ASCII码与字符转换 本段C++代码展示了如何进行ASCII码与字符之间的相互转换。 1. **程序结构**: - 使用`#include`...

    一维字符数组大小写转换及字符与数字转换.pdf

    例如,我们可以使用以下代码实现将 s 所指字符串中下标为奇数位置上的大写字母转换为字母序列中的下一个小写字母: ```c void fun(char *s) { int i; for(i=1; s[i]; i+=2) { if(s[i]&gt;='A' && s[i]) s[i] += 32;...

    字符-ascii码转换工具

    标题中的“字符-ASCII码转换工具”指的是一个利用C#编写的程序,这个程序可以将字符转换成对应的ASCII数值,反之亦然。这在处理字符数据时非常有用,比如解析或生成纯文本文件,或者在通信协议中进行数据传输时确保...

    长ASCII码转字符串转换器源代码

    网上有许多ASCII码转字符串的转换器,但一般都只能实现一个字符对应的ASCII码转换成一个字符,我设计的这个C++小程序能够实现2进制、10进制、16进制长达1000位数字的ASCII码转换成对应的字符,需要通过debug或控制台...

    VB 字符转换程序

    本程序可能是为了帮助开发者或用户将特定字符或字符串从一种形式转换为另一种形式,比如ASCII码与Unicode之间的转换、大小写的转换、特殊字符的解码或编码等。 在VB中,以下是一些关键知识点: 1. **Char函数**:...

    长ASCII码转字符串转换器

    网上有许多ASCII码转字符串的转换器,但一般都只能实现一个字符对应的ASCII码转换成一个字符,我设计的这个C++小程序能够实现2进制、10进制、16进制长达1000位数字的ASCII码转换成对应的字符,需要通过控制台运行。...

    字符转ASCII码源程序

    标题中的"字符转ASCII码源程序"指的是一个编程程序,其主要功能是将输入的字符转换为对应的ASCII码值,并可能以16进制的形式展示。在单片机编程中,由于资源限制,这种转换过程通常需要简洁且高效,因此这类程序具有...

    综合汇总小程序ASC码等四项(VB6.0代码编写)

    在VB6.0环境下,开发一个综合汇总小程序涵盖了多个编程概念和技术,包括ASC码的处理。ASC码,也称为ASCII码,是英文American Standard Code for Information Interchange(美国信息交换标准代码)的缩写,是一种7位...

    小程序预览base64 码的pdf

    2. **将Base64字符串转换为文件流**:在小程序中,你需要将Base64字符串转换回二进制文件流。这可以通过小程序的`wx.base64ToArrayBuffer`方法完成,将Base64编码的PDF转换为ArrayBuffer对象,这是小程序能理解的...

    mysql字符集转换

    - **数据迁移**:当需要将数据从一个系统迁移到另一个系统时,源系统与目标系统的字符集可能不一致。 - **国际化需求**:随着业务的发展,可能需要支持更多的语言,这就涉及到对现有数据进行字符集转换。 - **数据...

    OJ_字符转换Univesity

    综上所述,这个OJ题目可能要求我们编写一个程序,读取`source`文件中的字符或字符串,然后进行某种特定的字符转换,比如大小写转换,或者按照某种规则替换特定字符。由于没有给出具体要求,你需要自行设计输入输出...

    点阵字符ANSI码转换助手

    对于ASCII或ANSI码的字符,转换结果同样是一个二维数组,但其大小可能仅为8x8或更小,因为这些字符的点阵通常比汉字简洁。 在压缩包中的"CodeConvert.exe"是这个转换助手的可执行文件,双击运行后,用户可以在界面...

    字符转换工具

    这类工具可以帮助用户方便地进行大小写转换、ASCII码转换等操作,广泛应用于文本编辑、编程、数据分析等多个场景。 首先,我们要理解“大小写转换”的概念。在计算机世界里,字母有大写和小写之分,它们在内存中...

    java字符串的各种编码转换

    该方法接受一个源字符串和目标字符集名称作为参数,然后返回转换后的字符串。 ```java public String changeCharset(String str, String newCharset) throws UnsupportedEncodingException { if (str != null) { ...

    URL编码解码小程序

    总的来说,URL编码解码小程序是一个实用的工具,可以帮助用户方便地处理含有非ASCII字符或特殊字符的URL,提高他们在网络开发和数据处理中的效率。理解URL编码的工作原理和应用场景,对于理解互联网通信的基础和解决...

    微信小程序 数字转条形码和二维码

    1. **数据编码**:在小程序中,我们需要将数字或字符串先进行编码,转换成条形码或二维码的格式。对于条形码,可以使用第三方库如`barcode.js`;对于二维码,微信小程序提供了内置的`wx.qrcode`接口。你需要将要转换...

    ASCLL码转换器

    ASCLL码转换器是一款由个人开发者使用VC++编程语言编写的工具,旨在帮助用户将字符与对应的ASCII码之间进行转换。...对于专业人士,ASCLL码转换器则是一个实用的小工具,能够快速解决字符编码相关的任务。

Global site tag (gtag.js) - Google Analytics