標籤:
關鍵代碼:
using System.Text;namespace YanZhiwei.DotNet2.Utilities.Common{ /// <summary> /// ASCII 協助類 /// </summary> public static class ASCIIHelper { /* * 知識: * ASCII是基於拉丁字母的一套電腦編碼系統。它主要用於顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,並等同於國際標準ISO/IEC 646。 * 在電腦中,所有的資料在儲存和運算時都要使用位元表示(因為電腦用高電平和低電平分別表示1和0),例如,像 * a、b、c、d這樣的52個字母(包括大寫)、以及0、1等數字還有一些常用的符號(例如*、#、@等)在電腦中儲存時也要使用 * 位元來表示,而具體用哪些位元字表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼),而大家如果要想 * 互相通訊而不造成混亂,那麼大家就必須使用相同的編碼規則,於是美國有關的標準化組織就出台了ASCII編碼,統一規定了上 * 述常用符號用哪些位元來表示。 * * ASCII 碼使用指定的7 位或8 位位元組合來表示128 或256 種可能的字元。標準ASCII 碼也叫基礎ASCII碼,使用7 位二 * 進位數來表示所有的大寫和小寫字母,數字0 到9、標點符號, 以及在美式英語中使用的特殊控制字元。 */ #region 轉換為ASCII碼 /// <summary> /// 轉換為ASCII碼 /// </summary> /// <param name="data">字元</param> /// <returns>ASCII碼</returns> public static int ToASCII(this char data) { ASCIIEncoding _asciiEncoding = new ASCIIEncoding(); char[] _array = new char[1] { data }; return (int)_asciiEncoding.GetBytes(_array)[0]; } /// <summary> /// 將字串轉換為轉換為ASCII碼 /// </summary> /// <param name="data">字串</param> /// <returns>byte[]</returns> public static byte[] ToASCII(this string data) { byte[] asciiBytes = null; if (!string.IsNullOrEmpty(data)) asciiBytes = Encoding.ASCII.GetBytes(data); return asciiBytes; } #endregion #region 將ASCII碼轉換為字元 /// <summary> /// 將ASCII碼轉換為字元 /// </summary> /// <param name="asciiCode">SCII碼</param> /// <returns>字元</returns> public static char ToChar(this byte asciiCode) { ASCIIEncoding _asciiEncoding = new ASCIIEncoding(); byte[] _array = new byte[] { asciiCode }; return _asciiEncoding.GetString(_array)[0]; } #endregion }}
單元測試:
using Microsoft.VisualStudio.TestTools.UnitTesting;namespace YanZhiwei.DotNet2.Utilities.Common.Tests{ [TestClass()] public class ASCIIHelperTests { [TestMethod()] public void ToASCIITest() { int _actual = ASCIIHelper.ToASCII(‘.‘); Assert.AreEqual(46, _actual); byte[] _actualArray = ASCIIHelper.ToASCII("Hello"); CollectionAssert.AreEqual(new byte[5] { 72, 101, 108, 108, 111 }, _actualArray); } [TestMethod()] public void ToCharTest() { char _actual = ASCIIHelper.ToChar(46); Assert.AreEqual(‘.‘, _actual); } }}
[C#]ASCIIHelper