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 ...
随机推荐
- 小整数池和intern机制
在python中,为了优化速度,避免频繁申请和销毁内存空间,python使用小整数池来缓存 range(-5,257) 之间的整数(这里不包含257),这些小整数在赋值引用时使用的都是同一个对象和内存 ...
- c c++ 混合编译
单个源文件生成可执行程序 下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: 1 2 3 4 5 6 7 8 9 /* helloworld.cpp */ # ...
- CF 1000
水爆了...... 当然不是题目水,而是我水. 第一题,看完题目我稍微惊了一下,有点难度(并不). 开个map,先加后减,统计正数即可. 第二题,看完我冷汗就流下来了,有点难啊,这是B难度? 趴床上推 ...
- A1051. Pop Sequence
Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and p ...
- 2018 ACM 网络选拔赛 北京赛区
A Saving Tang Monk II #include <bits/stdc++.h> using namespace std; ; struct node { int x,y,z, ...
- csp20170304地铁修建_Solution
ccf20170304地铁修建_Solution 这里最短路为所以从点1到点n的路径中最长的道路的长度. 因为1 ≤ n ≤ 100000,1 ≤ m ≤ 200000,属于稀疏图,所以使用Spfa( ...
- php 防止sql注入的简单方法
您可以使用PHP的功能,如函数stripslashes()和addslashes(),mysql_real_escape_string()等,使安全的SQL查询. 以下是安全的SQL语句,使用PHP ...
- (stripTrailingZeros)A == B hdu2054
A == B ? 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2054 Problem Description Give you two numbers ...
- 版本控制工具Git工具快速入门-Windows篇
版本控制工具Git工具快速入门-Windows篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近在学习Golang语言,之前的开发环境在linux上开发的,后来由于办公用的是w ...
- 用访问控制列表(ACL)实现包过滤
用访问控制列表(ACL)实现包过滤 一.ACL概述 1.ACL(Access Control List,访问控制列表)是用来实现数据包识别功能的 2.ACL可以应用于诸多方面 a>.b包过滤 ...