public void BytesAndAsciiStringTest()
        {
            var bytes       = new byte[] { 65, 66, 67 };
            var asciiString = AsciiConv.BytesToAsciiString(bytes);

            asciiString.ShouldBe("ABC");

            var byteArray = AsciiConv.AsciiStringToBytes(asciiString);

            byteArray.Length.ShouldBe(3);
            byteArray[0].ShouldBe((byte)65);
            byteArray[1].ShouldBe((byte)66);
            byteArray[2].ShouldBe((byte)67);
        }
Exemple #2
0
 public static string CastToString(this byte[] bytes)
 {
     return(AsciiConv.BytesToAsciiString(bytes));
 }
Exemple #3
0
        /// <summary>
        /// 変換の種類を指定して、文字を変換します。
        /// </summary>
        /// <param name="value">変換対象の文字列。</param>
        /// <param name="kana">かなの変換の種類。</param>
        /// <param name="ascii">ASCII 文字の変換の種類。</param>
        /// <returns>変換後の文字列。</returns>
        public static string Convert(this string value, KanaConv kana = KanaConv.None, AsciiConv ascii = AsciiConv.None)
        {
            if (!Enum.IsDefined(typeof(AsciiConv), ascii))
            {
                throw new ArgumentException("The value is not defined.", nameof(ascii));
            }
            if (!Enum.IsDefined(typeof(KanaConv), kana))
            {
                throw new ArgumentException("The value is not defined.", nameof(kana));
            }

            var current = value;

            if (ascii == AsciiConv.ToNarrow)
            {
                current = current.AsciiToNarrow();
            }
            else if (ascii == AsciiConv.ToWide)
            {
                current = current.AsciiToWide();
            }

            if (kana.HasFlag(KanaConv.KatakanaToHiragana))
            {
                current = current.KatakanaToHiragana();
            }
            if (kana.HasFlag(KanaConv.HalfKatakanaToHiragana))
            {
                current = current.HalfKatakanaToHiragana();
            }
            if (kana.HasFlag(KanaConv.HiraganaToKatakana))
            {
                current = current.HiraganaToKatakana();
            }
            if (kana.HasFlag(KanaConv.HalfKatakanaToKatakana))
            {
                current = current.HalfKatakanaToKatakana();
            }

            return(current);
        }