C# 汉字与区位码之间的相互转换(中文数字字母可以,支持空格,但是特殊字符未来得及测试)
using System;
using System.Text; namespace Test
{
class MainClass
{
/// <summary>
/// 中文空白字符,用于替换空格
/// </summary>
private static string ChineseSpace = " "; public static void Main(string[] args)
{
string s = "你我是中国人 12 34 ABCabc";
Console.WriteLine(s);
s = ChineseToCoding(s);
Console.WriteLine(s);
s = CodingToChinese(s);
Console.WriteLine(s);
Console.ReadKey();
} /// <summary>
/// 汉字转区位码方法
/// </summary>
/// <param name="character">汉字</param>
/// <returns>区位码</returns>
public static string ChineseToCoding(string character)
{
string coding = string.Empty; //空格处理(如不用可以注释)
character = character.Replace(" ", ChineseSpace); try
{
for (int i = ; i < character.Length; i++)
{
byte[] bytes = System.Text.Encoding.GetEncoding("GB2312").GetBytes(character.Substring(i, ));
if (bytes.Length == )
{
string lowCode = System.Convert.ToString(bytes[], );
if (lowCode.Length == )
lowCode = "" + lowCode;
string hightCode = System.Convert.ToString(bytes[], );
if (hightCode.Length == )
hightCode = "" + hightCode;
coding += (lowCode + hightCode);
}
else
{
string lowCode = System.Convert.ToString(bytes[], );
if (lowCode.Length == )
lowCode = "" + lowCode;
coding += (lowCode);
}
}
return coding;
}
catch
{
return null;
}
} /// <summary>
/// 区位码转汉字方法
/// </summary>
/// <param name="coding">区位码</param>
/// <returns>汉字</returns>
public static string CodingToChinese(string coding)
{
string characters = string.Empty;
if (coding.Length % != )//编码为16进制,必须为4的倍数。
{
throw new System.Exception("编码格式不正确");
}
for (int i = ; i < coding.Length / ; i++)
{
byte[] bytes = new byte[];
int j = i * ;
string lowCode = coding.Substring(j, ); //取出低字节,并以16进制进制转换
bytes[] = System.Convert.ToByte(lowCode, );
string highCode = coding.Substring(j + , ); //取出高字节,并以16进制进行转换
bytes[] = System.Convert.ToByte(highCode, );
string character = System.Text.Encoding.GetEncoding("GB2312").GetString(bytes);
characters += character;
} //空格复原(将中文空白字符转换普通空格)
characters = characters.Replace(ChineseSpace, " "); return characters;
}
}
}
C# 汉字与区位码之间的相互转换(中文数字字母可以,支持空格,但是特殊字符未来得及测试)的更多相关文章
- 【Teradata SQL】从中文数字字母混合字符串中只提取数字regexp_substr
目标:从中文数字字母的字符串中只提取数字 sel regexp_substr('mint choc中文11国1','\d+')
- 使用Java将阿拉伯数字转换为中文数字(适配小数转换)
Java数字转换工具类 简介 该工具类可以将整数.小数.负数转换为中文的数字,如: 0 --> 零 1 --> 一 2.1 --> 二点一 -2.1 --> 负二点一 具体代码 ...
- 汉字与区位码互转(天天使用的String存储的是内码),几个常见汉字编码,附有读书笔记
汉=BABA(内码)=-A0A0=2626(区位码)字=D7D6(内码)=-A0A0=5554(区位码) 各种编码查询表:http://bm.kdd.cc/ “啊”字是GB2312之中的第一个汉字,会 ...
- PHP 中文工具类,支持汉字转拼音、拼音分词、简繁互转
ChineseUtil 下载地址:https://github.com/Yurunsoft/ChineseUtil 另外一个中文转拼音工具:https://github.com/overtrue/pi ...
- 字符编码之间的相互转换 UTF8与GBK(转载)
转载自http://www.cnblogs.com/azraelly/archive/2012/06/21/2558360.html UTF8与GBK字符编码之间的相互转换 C++ UTF8编码转换 ...
- ios 一个正则表达式测试(只可输入中文、字母和数字)
一个正则表达式测试(只可输入中文.字母和数字) 在项目中碰到了正则表达式的运用,正则还是非常强大的,不管什么编程语言,基本上都可以用到.之前在用java时特别是对用户名或密码使用正则非常爽,写 脚本上 ...
- 汉字与区位码互转(天天使用Delphi的String存储的是内码,Windows记事本存储的文件也是内码),几个常见汉字的各种编码,utf8与unicode的编码在线查询,附有读书笔记 good
汉=BABA(内码)=-A0A0=2626(区位码)字=D7D6(内码)=-A0A0=5554(区位码) 各种编码查询表:http://bm.kdd.cc/ 汉(记住它,以后碰到内存里的数值,就会有敏 ...
- 【miscellaneous】【C/C++语言】UTF8与GBK字符编码之间的相互转换
UTF8与GBK字符编码之间的相互转换 C++ UTF8编码转换 CChineseCode 一 预备知识 1,字符:字符是抽象的最小文本单位.它没有固定的形状(可能是一个字形),而且没有值." ...
- json和string 之间的相互转换
json和string 之间的相互转换 <script type="text/javascript"> //先认识一下js中json function showInfo ...
随机推荐
- 监控(2)-php-fpm进程监控 shell
#!/bin/bash #监控的网页地址url="http://dev2.jwsmed.com" #fastcgi启动/重启/停止脚本路径PROG=/data/fistsoft/p ...
- 【bzoj4818】 Sdoi2017—序列计数
http://www.lydsy.com/JudgeOnline/problem.php?id=4818 (题目链接) 题意 一个长度为$n$的序列,每个元素是不超过$m$的正整数,且这$n$个数的和 ...
- Java -- JDBC 学习--使用 DBUtils
Apache—DBUtils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdb ...
- 树莓派上使用Slowloris进行DDoS攻击
安装Slowloris工具 git clone https://github.com/gkbrk/slowloris.git 使用Slowloris进行攻击 进入Slowloris文件夹.cd slo ...
- CSS3:文字属性
文字属性注意的细节: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- 门店评级VS坏客户
sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...
- Java基础-Eclipse第三方安装包管理工具之Maven
Java基础-Eclipse第三方安装包管理工具之Maven 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩过Linux的小伙伴应该都知道yum吧,我们只要把搭建好的yum仓库配 ...
- CentOS Linux release 7.3源码安装zabbix
CentOS Linux release 7.3安装zabbix 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 我去年用用centos6的环境搭建了一下 zabbix3.0 ...
- RocketMQ之消息幂等
幂等(idempotent.idempotence)是一个数学与计算机学概念,常见于抽象代数中. 在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同. 首先我们了解一下什么是 ...
- spyder里的"查找文件里的特定字符串"非常方便
spyder里的"查找文件里的特定字符串"非常方便 快捷键是: ^+shift+F 使用方法: 输入被查找的字符串: 比如: .rcParam, 注意大小写敏感的(默认设置) 回车 ...