首先复习一下计算机基础知识:
计算机中最底层的数据都是用二进制及0和1来表示的。每个0或1称作1位,第8位二进制数叫做1个字节,它可以表示ASCII码中的一个字符。中文计算机中用两个字节即16位二进制来表示一个汉字。而在Unicode编码中所有的符号(包括汉字,英文,标题及其它众多符号)都是为两字节(16)位来表示。
在System.Text命名空间中包含众多编码的类,可供进行操作及转换,下面用两个实例来进行区位码及汉字之间的互换,希望能起到举一反三的效果,让大家可以轻松处理文字编码方面的问题:
using System;
using System.Text;
class CodingChange
{
public string CharacterToCoding(string character)
{
string coding = "";
for (int i = 0; i
1<character.length; !="0)//编码为16进制,必须为4的倍数。" %="" (coding.length="" (hightcode.length="1)" (int="" (lowcode.length="1)" )="" +="character;" 16);="" 2);="" 2,="" 4="" ;="" byte[2];="" byte[]="" bytes="new" bytes[0]="System.Convert.ToByte(lowCode," bytes[1]="System.Convert.ToByte(highCode," c:\="" character="System.Text.Encoding.Unicode.GetString(bytes);" characters="" characters;="" code="new" coding='code.CharacterToCoding("我们的大中国,是好在的一个家.");' coding)="" coding;="" codingchange="" codingchange();="" codingtocharacter(string="" console.writeline(code.codingtocharacter(coding));="" console.writeline(coding);="" for="" highcode="coding.Substring(i" hightcode="0" hightcode);="" hightcode;="" i="0;" i+="4" i++="" i<coding.length;="" if="" lowcode="coding.Substring(i," lowcode;="" main()="" new="" public="" return="" static="" string="" system.exception("编码格式不正确");="" throw="" void="" {="" }="" };="" 加入到字符串中,="" 取出二进制编码内容="" 取出低字节,并以16进制进制转换="" 取出低字节编码内容(两位16进制)="" 取出高字节,并以16进制进行转换="" 取出高字节编码内容(两位16进制)="" 最后输出的结果是:="" 每四位为一个汉字="">test
21162ec4e847627592d4efd560cff2f667d5928578476004e2a4eb65b2e00
3我们的大中国,是好在的一个家.
4
5C:\></character.length;>