C# Unicode (\uxxxx) 和 中文 變數互轉

C# Unicode (\uxxxx) 和 中文 變數互轉

C# Unicode (\uxxxx) 和 中文 變數互轉


資料來源:http://trufflepenne.blogspot.com/2013/03/cunicode.html

    GOOGLE: C#  \uXXXX

        https://www.cnblogs.com/netlog/p/15911016.html C#字符串Unicode转义序列编解码
        https://docs.microsoft.com/zh-tw/dotnet/api/system.text.regularexpressions.regex.unescape?view=net-6.0

https://www.cnblogs.com/sntetwt/p/11218087.html [C# 將非英數字轉成UNICODE]


Code

        //---
        //單純只針對非英數字(中文字)部分轉Unicode編碼
        static string StringToUnicode(string text)
        {
            //https://www.cnblogs.com/sntetwt/p/11218087.html
            string result = "";
            for (int i = 0; i < text.Length; i++)
            {
                if ((int)text[i] > 32 && (int)text[i] < 127)
                {
                    result += text[i].ToString();
                }
                else
                    result += string.Format("\\u{0:x4}", (int)text[i]);
            }
            return result;
        }
        //---單純只針對非英數字(中文字)部分轉Unicode編碼

        /*使用範例        
            Console.WriteLine(StringToUnicode("廖"));
            //UTF-8 轉中文
            String result00 = string.Format(@"\u"+"{0:x4}", 24278);
            String result01 = "\u5ed6";

            String StrBuf00 = UnescapeUnicode(result00+"jashliao中文1234");
            String StrBuf01 = StringToUnicode(result01);

            Console.Write(UnicodeToString(StrBuf01));
        */
        static string StringToUnicode(string srcText)
        {
            //http://trufflepenne.blogspot.com/2013/03/cunicode.html
            string dst = "";
            char[] src = srcText.ToCharArray();
            for (int i = 0; i < src.Length; i++)
            {
                byte[] bytes = Encoding.Unicode.GetBytes(src[i].ToString());
                string str = @"\u" + bytes[1].ToString("X2") + bytes[0].ToString("X2");
                dst += str;
            }
            return dst;
        }

        static string UnicodeToString(string srcText)
        {
            //http://trufflepenne.blogspot.com/2013/03/cunicode.html
            string dst = "";
            string src = srcText;
            int len = srcText.Length / 6;

            for (int i = 0; i <= len - 1; i++)
            {
                string str = "";
                str = src.Substring(0, 6).Substring(2);
                src = src.Substring(6);
                byte[] bytes = new byte[2];
                bytes[1] = byte.Parse(int.Parse(str.Substring(0, 2), System.Globalization.NumberStyles.HexNumber).ToString());
                bytes[0] = byte.Parse(int.Parse(str.Substring(2, 2), System.Globalization.NumberStyles.HexNumber).ToString());
                dst += Encoding.Unicode.GetString(bytes);
            }
            return dst;
        }

        public static string UnescapeUnicode(string str)  // 将unicode转义序列(\uxxxx)解码为字符串
        {
            //GOOGLE: C#  \uXXXX
            //https://www.cnblogs.com/netlog/p/15911016.html C#字符串Unicode转义序列编解码
            //https://docs.microsoft.com/zh-tw/dotnet/api/system.text.regularexpressions.regex.unescape?view=net-6.0

            return (System.Text.RegularExpressions.Regex.Unescape(str));
        }

4 thoughts on “C# Unicode (\uxxxx) 和 中文 變數互轉

  1. C# UNICODE (\UXXXX) 和 中文 變數互轉

    C#字符串Unicode轉義序列編解碼

    將unicode轉義(轉換)序列(\uxxxx)解碼為字符串(字串)

  2. 通過替換爲轉義碼來轉義最小的字符集(\、*、+、?、|、{、[、(、)、^、$、.、# 和空白)。這將指示正則表達式引擎按原義解釋這些字符而不是解釋爲元字符。

  3. C# int 轉 HEX 字串(\XOO)


    using System;

    class Program
    {
    static void Main()
    {
    int num = 255;

    Console.WriteLine(@"int2\x : " + num + " ->" + string.Format(@"\x{0:x2}", 255)); //255 -> \xff

    //---
    int nL = 45;
    int nH = 0;
    string strCmd = "\x1d" + "$" + (char)nL + (char)nH; // 垂直起始位置 (nL+(nH*256))*0.125=60*0.125=7.5mm
    byte[] data = Encoding.GetEncoding("big5").GetBytes(strCmd);
    }
    }

  4. C# 印出 ASCII code 的 Unicode (\uxxxx)

    https://learn.microsoft.com/zh-tw/dotnet/api/system.string.toupper?view=net-8.0


    using System;

    public class Example
    {
    public static void Main()
    {
    int n = 0;
    for (int ctr = 0x20; ctr {2} (\u+{3}) ",
    string1,
    Convert.ToUInt16(string1[0]).ToString("X4"),
    upperString,
    Convert.ToUInt16(upperString[0]).ToString("X4"));
    n++;
    if (n % 2 == 0) Console.WriteLine();
    }
    }
    }
    }
    // The example displays the following output:
    // a (\u+0061) --> A (\u+0041) b (\u+0062) --> B (\u+0042)
    // c (\u+0063) --> C (\u+0043) d (\u+0064) --> D (\u+0044)
    // e (\u+0065) --> E (\u+0045) f (\u+0066) --> F (\u+0046)
    // g (\u+0067) --> G (\u+0047) h (\u+0068) --> H (\u+0048)
    // i (\u+0069) --> I (\u+0049) j (\u+006A) --> J (\u+004A)
    // k (\u+006B) --> K (\u+004B) l (\u+006C) --> L (\u+004C)
    // m (\u+006D) --> M (\u+004D) n (\u+006E) --> N (\u+004E)
    // o (\u+006F) --> O (\u+004F) p (\u+0070) --> P (\u+0050)
    // q (\u+0071) --> Q (\u+0051) r (\u+0072) --> R (\u+0052)
    // s (\u+0073) --> S (\u+0053) t (\u+0074) --> T (\u+0054)
    // u (\u+0075) --> U (\u+0055) v (\u+0076) --> V (\u+0056)
    // w (\u+0077) --> W (\u+0057) x (\u+0078) --> X (\u+0058)
    // y (\u+0079) --> Y (\u+0059) z (\u+007A) --> Z (\u+005A)
    // à (\u+00E0) --> À (\u+00C0) á (\u+00E1) --> Á (\u+00C1)
    // â (\u+00E2) --> Â (\u+00C2) ã (\u+00E3) --> Ã (\u+00C3)
    // ä (\u+00E4) --> Ä (\u+00C4) å (\u+00E5) --> Å (\u+00C5)
    // æ (\u+00E6) --> Æ (\u+00C6) ç (\u+00E7) --> Ç (\u+00C7)
    // è (\u+00E8) --> È (\u+00C8) é (\u+00E9) --> É (\u+00C9)
    // ê (\u+00EA) --> Ê (\u+00CA) ë (\u+00EB) --> Ë (\u+00CB)
    // ì (\u+00EC) --> Ì (\u+00CC) í (\u+00ED) --> Í (\u+00CD)
    // î (\u+00EE) --> Î (\u+00CE) ï (\u+00EF) --> Ï (\u+00CF)
    // ð (\u+00F0) --> Ð (\u+00D0) ñ (\u+00F1) --> Ñ (\u+00D1)
    // ò (\u+00F2) --> Ò (\u+00D2) ó (\u+00F3) --> Ó (\u+00D3)
    // ô (\u+00F4) --> Ô (\u+00D4) õ (\u+00F5) --> Õ (\u+00D5)
    // ö (\u+00F6) --> Ö (\u+00D6) ø (\u+00F8) --> Ø (\u+00D8)
    // ù (\u+00F9) --> Ù (\u+00D9) ú (\u+00FA) --> Ú (\u+00DA)
    // û (\u+00FB) --> Û (\u+00DB) ü (\u+00FC) --> Ü (\u+00DC)
    // ý (\u+00FD) --> Ý (\u+00DD) þ (\u+00FE) --> Þ (\u+00DE)
    // ÿ (\u+00FF) --> Ÿ (\u+0178) ā (\u+0101) --> Ā (\u+0100)
    // ă (\u+0103) --> Ă (\u+0102) ą (\u+0105) --> Ą (\u+0104)
    // ć (\u+0107) --> Ć (\u+0106) ĉ (\u+0109) --> Ĉ (\u+0108)
    // ċ (\u+010B) --> Ċ (\u+010A) č (\u+010D) --> Č (\u+010C)
    // ď (\u+010F) --> Ď (\u+010E) đ (\u+0111) --> Đ (\u+0110)
    // ē (\u+0113) --> Ē (\u+0112) ĕ (\u+0115) --> Ĕ (\u+0114)
    // ė (\u+0117) --> Ė (\u+0116) ę (\u+0119) --> Ę (\u+0118)
    // ě (\u+011B) --> Ě (\u+011A) ĝ (\u+011D) --> Ĝ (\u+011C)
    // ğ (\u+011F) --> Ğ (\u+011E) ġ (\u+0121) --> Ġ (\u+0120)
    // ģ (\u+0123) --> Ģ (\u+0122) ĥ (\u+0125) --> Ĥ (\u+0124)
    // ħ (\u+0127) --> Ħ (\u+0126) ĩ (\u+0129) --> Ĩ (\u+0128)
    // ī (\u+012B) --> Ī (\u+012A) ĭ (\u+012D) --> Ĭ (\u+012C)
    // į (\u+012F) --> Į (\u+012E) ı (\u+0131) --> I (\u+0049)
    // ij (\u+0133) --> IJ (\u+0132) ĵ (\u+0135) --> Ĵ (\u+0134)
    // ķ (\u+0137) --> Ķ (\u+0136) ĺ (\u+013A) --> Ĺ (\u+0139)
    // ļ (\u+013C) --> Ļ (\u+013B) ľ (\u+013E) --> Ľ (\u+013D)
    // ŀ (\u+0140) --> Ŀ (\u+013F) ł (\u+0142) --> Ł (\u+0141)
    // ń (\u+0144) --> Ń (\u+0143) ņ (\u+0146) --> Ņ (\u+0145)
    // ň (\u+0148) --> Ň (\u+0147) ŋ (\u+014B) --> Ŋ (\u+014A)
    // ō (\u+014D) --> Ō (\u+014C) ŏ (\u+014F) --> Ŏ (\u+014E)
    // ő (\u+0151) --> Ő (\u+0150) œ (\u+0153) --> Œ (\u+0152)
    // ŕ (\u+0155) --> Ŕ (\u+0154) ŗ (\u+0157) --> Ŗ (\u+0156)
    // ř (\u+0159) --> Ř (\u+0158) ś (\u+015B) --> Ś (\u+015A)
    // ŝ (\u+015D) --> Ŝ (\u+015C) ş (\u+015F) --> Ş (\u+015E)
    // š (\u+0161) --> Š (\u+0160) ţ (\u+0163) --> Ţ (\u+0162)
    // ť (\u+0165) --> Ť (\u+0164) ŧ (\u+0167) --> Ŧ (\u+0166)
    // ũ (\u+0169) --> Ũ (\u+0168) ū (\u+016B) --> Ū (\u+016A)
    // ŭ (\u+016D) --> Ŭ (\u+016C) ů (\u+016F) --> Ů (\u+016E)
    // ű (\u+0171) --> Ű (\u+0170) ų (\u+0173) --> Ų (\u+0172)
    // ŵ (\u+0175) --> Ŵ (\u+0174) ŷ (\u+0177) --> Ŷ (\u+0176)
    // ź (\u+017A) --> Ź (\u+0179) ż (\u+017C) --> Ż (\u+017B)
    // ž (\u+017E) --> Ž (\u+017D)

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *