C#汉字-区位码相互转化类 汉字区位码

项目中需要对汉字使用区位码进行转化,写了一个类,分享如下:

测试数据:

比如“布”
查出来的是1828
18---0x12 -----0x12+0xa0 = 0xB2
28 ---- 0x1c + 0xA0 ------0xBC
所以“布”的区位码是B2Bc
字符串:张三的区位码转化以后是D5C5C8FD

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Rare.Card.Libary.Helper
{
public classCharacterAreaCodingConvertHelper
{
/// <summary>
/// 汉字转区位码
/// </summary>
/// <paramname="character"></param>
///<returns></returns>
public static string CharacterToCoding(string character)
{
string coding = string.Empty;
for (int i = 0; i < character.Length; i++)
{
byte[] bytes =System.Text.Encoding.GetEncoding("GB2312").GetBytes(character.Substring(i,1));
string lowCode = System.Convert.ToString(bytes[0], 16);//取出低字节编码内容(两位16进制)
if (lowCode.Length == 1)
lowCode = "0" + lowCode;
string hightCode = System.Convert.ToString(bytes[1],16);//取出高字节编码内容(两位16进制)
if (hightCode.Length == 1)
hightCode = "0" + hightCode;
coding += (lowCode + hightCode);//加入到字符串中,
}
return coding;
}
/// <summary>
/// 区位码取汉字
/// </summary>
/// <paramname="coding"></param>
///<returns></returns>
public static string CodingToCharacter(string coding)
{
string characters = string.Empty;
if (coding.Length % 4 != 0)//编码为16进制,必须为4的倍数。
{
throw new System.Exception("编码格式不正确");
}
for (int i = 0; i < coding.Length / 4; i++)
{
byte[] bytes = new byte[2];
int j = i * 4;
string lowCode = coding.Substring(j, 2); //取出低字节,并以16进制进制转换
C#汉字-区位码相互转化类 汉字区位码
bytes[0] = System.Convert.ToByte(lowCode, 16);
string highCode = coding.Substring(j + 2, 2);//取出高字节,并以16进制进行转换
bytes[1] = System.Convert.ToByte(highCode, 16);
string character =System.Text.Encoding.GetEncoding("GB2312").GetString(bytes);
characters += character;
}
return characters;
}
}
}

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/61873.html

更多阅读

理查德.怀斯曼《正能量》经典语录 职场正能量经典语录

1、要改变自己的生活,就要先改变自己的思维方式。创造快乐的情绪,你会感到更幸福;想象完善的自己,你会越来越成功。像一个百万富翁一样思考,你会奇迹般地致富。2、做之前没有做过的事情,那些让你感觉不那么舒服但其实没什么害处的事情,这是

杭电2058 k2058次列车时刻表

穷举是穷举,还不能任意穷举,要不超时,FUCK!设初始值i,个数为j的数列满足要求,则(i+i+j-1)*j/2=m==>(2*i-1+j)*j=2m所以j肯定小于等于sqrt(2*m),穷举C语言源码:#include<stdio.h>#include<math.

ip地址分类 ip地址如何分类

ip地址分类及子网掩码的详细介绍一、IP地址的介绍1、IP地址的表示方法IP地址 = 网络号+主机号把整个Internet网堪称单一的网络,IP地址就是给每个连在Internet网的主机分配一个在全世界范围内唯一的标示符,Internet管理委员会定义了A、

四物汤,天下补血第一方 补血四物汤

四物汤,由当归、川芎、白芍、熟地黄四味中药组成,是以补血调血为主要功用的方剂,被誉为「一切血病的总方」、「肝经调血之专剂」。从四物汤的方义来看,熟地黄以补血为主,具有补肾填精的作用;当归补血、活血,补阴中之阳,单味药具有壮阳、兴阳

电视剧“红高粱”的观后感 电视剧红高粱的主题曲

人类中的绝大多数都有追求真善美、厌恶假恶丑的天性,但是“存在决定意识“,不同的社会环境促使真善美与假恶丑在一定条件下相互转化,呈现假中有真,真中有假;恶中有善,善中有恶;丑中有美,美中有丑。人们的变化正是在不断变化的复杂环境与个人

声明:《C#汉字-区位码相互转化类 汉字区位码》为网友過分驕傲分享!如侵犯到您的合法权益请联系我们删除