package codingTest;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
public class CodingTest {
public static void test1() throws UnsupportedEncodingException {
// GB2312字符集的第一个汉字“啊”字为例,它的区号16,位号01,则区位码是1601,在大多数计算机程序中,
// 高字节和低字节分别加0xA0得到程序的汉字处理编码0xB0A1。计算公式是:0xB0=0xA0+16, 0xA1=0xA0+1。
// System.out.println("---------------------------------");
// int ch3 = 0x55;
// ch3 = ch3 << 8;
// ch3 = ch3 | 0x4a;
// System.out.println("str:" + (char) ch3);
// System.out.println("" + dec2Hex((int) ch3));
// System.out.println("---------------------------------");
// int ch = 0xA4;
// ch = ch << 8;
// ch = ch | 0x61;
// System.out.println("str:" + (char) ch);
// System.out.println("---------------------------------");
// char str = '啊';
// System.out.println("啊" + dec2Hex((int) str));
// System.out.println("---------------------------------");
// str = '嗀';
// System.out.println("嗀" + dec2Hex((int) str));
System.out.println("从字节数组---------转字符");
byte[] bin = new byte[] { (byte) 0xB0, (byte) 0xA1 };
System.out.println(new String(bin, "gb2312"));
System.out.println("啊 unicode---------------------------------");
String str = "啊";
byte[] bin2 = str.getBytes("unicode");
for (int i = 0; i < bin2.length; i++) {
System.out.println(dec2Hex((int) bin2[i]));
}
System.out.println(new String(bin2, "unicode"));
System.out.println("啊 utf-8---------------------------------");
bin2 = str.getBytes("utf-8");
for (int i = 0; i < bin2.length; i++) {
System.out.println(dec2Hex((int) bin2[i]));
}
System.out.println(new String(bin2, "utf-8"));
System.out.println("啊 gb2312---------------------------------");
bin2 = str.getBytes("gb2312");
for (int i = 0; i < bin2.length; i++) {
System.out.println(dec2Hex((int) bin2[i]));
}
System.out.println(new String(bin2, "gb2312"));
System.out.println("啊 big5---------------------------------");
bin2 = str.getBytes("big5");
for (int i = 0; i < bin2.length; i++) {
System.out.println(dec2Hex((int) bin2[i]));
}
System.out.println(new String(bin2, "big5"));
System.out.println("啊 iso-8859-1---------------------------------");
bin2 = str.getBytes("iso-8859-1");
for (int i = 0; i < bin2.length; i++) {
System.out.println(dec2Hex((int) bin2[i]));
}
System.out.println(new String(bin2, "iso-8859-1"));
}
public static void test2() throws IOException {
File file = new File("D:\\indexTest\\888.txt");
BufferedInputStream bufferInSt = new BufferedInputStream(new FileInputStream(file));
byte[] buff = new byte[20];
int size = bufferInSt.read(buff);
for (int i = 0; i < buff.length; i++) {
System.out.println(dec2Hex((int) buff[i]));
}
}
public static void main(String args[]) throws IOException {
test1();
// test2();
}
/**
* 十进制转换为十六进制
*
* @param dec
* int
* @return String
*/
public static String dec2Hex(int dec) {
StringBuffer sb = new StringBuffer();
sb.append("0x");
for (int i = 0; i < 8; i++) {
int tmp = (dec >> (7 - i %
* 4) & 0x0f;
if (tmp < 10)
sb.append(tmp);
else
sb.append((char) ('A' + (tmp - 10)));
}
return sb.toString();
}
/**
* byte转换为十六进制
*
* @param b
* byte
* @return String
*/
public static String byte2Hex(byte b) {
return ("" + "0123456789ABCDEF".charAt(0xf & b >> 4) + "0123456789ABCDEF".charAt(b & 0xf));
}
}
从字节数组---------转字符
啊
啊 unicode---------------------------------
0xFFFFFFFE
0xFFFFFFFF
0x00000055
0x0000004A
啊
啊 utf-8---------------------------------
0xFFFFFFE5
0xFFFFFF95
0xFFFFFF8A
啊
啊 gb2312---------------------------------
0xFFFFFFB0
0xFFFFFFA1
啊
啊 big5---------------------------------
0xFFFFFFB0
0xFFFFFFDA
啊
啊 iso-8859-1---------------------------------
0x0000003F
? 不能再转回来,有一部分字节都丢失了.
分享到:
相关推荐
"视频编码测试序列.zip"这个压缩包显然包含了若干用于测试的视频片段,适用于那些想要熟悉或优化HEVC(High Efficiency Video Coding)和H.264这两种编码标准的新手。 HEVC,全称为高效率视频编码,是目前广泛采用...
易语言源码新BASE64编码速度测试.rar 易语言源码新BASE64编码速度测试.rar 易语言源码新BASE64编码速度测试.rar 易语言源码新BASE64编码速度测试.rar 易语言源码新BASE64编码速度测试.rar 易语言源码新BASE64...
编码测试工程是一个重要的软件开发环节,它涉及到对代码的质量控制,确保软件的稳定性和可靠性。在本"编码测试工程.rar"压缩包中,包含了多个与编码测试相关的项目和工具,让我们逐一探讨它们。 首先,"CodecStudy_...
在这个例子中,ZIP文件中只包含了一个名为"AMR语音测试.amr"的文件,这可能是一个用于测试AMR编码解码性能或与微信、钉钉等应用程序接口(API)兼容性的语音样本。 描述中提到“对接微信,钉钉”,这意味着该AMR...
从给定的文件内容中,我们可以提炼出以下IT知识点,这些知识与软件工程、数据库操作、编码实践、测试工具和软件测试有关: 1. 软件工程课程设计 软件工程作为计算机科学的一个分支,专注于软件的开发过程,包括需求...
这个“新BASE64编码速度测试.zip”压缩包包含了易语言的项目例子和源码,可供学习者、学生以及小团队参考,以了解和实践新BASE64编码。 新BASE64编码主要改进了标准Base64算法的效率,通常通过优化算法、减少内存...
编码器脉冲数测试.rar”这个压缩包中,我们可以推测它包含了关于编码器脉冲数的测试资料,这可能是针对某种大车(如工业车辆或自动化运输系统)的编码器进行的测试。脉冲数是编码器性能的关键参数之一,直接影响到...
软件工程课程设计报告编码与测试 软件工程课程设计报告编码与测试是软件工程领域的一份报告,旨在设计和测试一个仓库系统的图着色理论应用。该报告旨在讲述如何使用C语言编写模块,并使用白盒和黑盒测试技术设计...
《智能化集成管理平台项目编码及测试》 在信息化时代的背景下,智能化集成管理平台已成为企业管理和运营的重要工具。本文将围绕该项目的编码和测试过程进行深入探讨,旨在确保系统的稳定性和高效性。 一、测试目的...
【智能化集成管理平台项目编码及测试】 智能化集成管理平台是一个基于互联网技术的综合性管理系统,旨在提升各类组织的运营效率和智能化水平。此文档主要涵盖了项目的编码实施和测试过程,包括系统界面设计、测试...
标题“语音编码g.729”和描述“G.729语音编码方面的硕士论文,美国名校的,对于语音研究非常有用”共同...5. 语音编码测试(如MOStest)和评估。 6. 硕士论文的撰写、学术指导、团队合作和情感支持对学术研究的影响。
树莓派编码测试库是一个专为开发者设计的资源包,主要针对DJI(大疆)Payload SDK进行工作。这个库的目的是为了帮助开发者在树莓派平台上进行视频编码的测试和开发,确保视频流的质量和性能。以下是这个库涉及的一些...
选课系统是比较实用的系统,进行编码之后,要有一定的测试。
本资源为H.265的编码格式视频,用于开发测试。相比H.264带来了很多质的提升,相关对比可以访问H.265与H.264的差异详解。总之,H.265, HEVC 作为当前非常火的视频压缩方式,相对于大家熟知的 H.264 ,平均可以带来...
华为Java语言编码规范.doc 本文档介绍了华为Java语言编程规范的相关知识点,涵盖编程规范、命名规范、注释规范、编码规范、JTEST规则等内容。 1. 编程规范 编程规范是指在编程时必须遵守的原则,旨在确保代码的...
本文主要围绕四个核心方面:可维护性、代码逻辑与效率、函数接口以及可测试性,提出了相应的编码规则和建议。 1. **排版风格** - **规则1**:代码块应使用缩进风格编写,缩进为4个空格,避免混用空格和TAB键。这样...
10. **持续集成/持续部署(CI/CD)**:编码规范可以涵盖自动化测试和部署流程,确保代码变更的顺利集成和发布。 “团队文档及编码规范.pdf”这份文档详细阐述了以上这些方面,是团队成员共同遵循的指南。通过学习和...
这个压缩包文件“Huffman编码测试文件”包含了各种类型的文件,如图像(rice.png、kids.tif、circbw.tif)、压缩文件(新压缩文件2.rar、压缩文本_rar.rar)、文本文件(西游记.txt、裁判文书.txt、病例.txt、...