C#含Unicode的字符串轉換問題


碰到傳輸問題,Java接口那邊版本低,給的字符串里頭包含特殊字符

(&frac12) == ½

KIDS' SNOW BOOTS BOTAS DE NIEVE PARA NIÑOSTemperature Rated Skid Resistant

N上面加個波浪符號,只能進行特殊轉換,直接對整個字符串進行Unicode轉換

 

    /// <summary>
    /// Unicode字符串轉換幫助類
    /// </summary>
    public class UniCodeHelper
    {
        /// <summary>
        /// 特殊字符String轉Unicode
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string ToUnicodeString(string str)
        {
            StringBuilder strResult = new StringBuilder();
            if (!string.IsNullOrEmpty(str))
            {
                for (int i = 0; i < str.Length; i++)
                {
                    strResult.Append("\\u");
                    strResult.Append(((int)str[i]).ToString("x"));
                }
            }
            return strResult.ToString();
        }

        /// <summary>
        /// 含Unicode字符轉String
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string FromUnicodeString(string str)
        {
            //最直接的方法Regex.Unescape(str);
            StringBuilder strResult = new StringBuilder();
            if (!string.IsNullOrEmpty(str))
            {
                string[] strlist = str.Replace("\\", "").Split('u');
                try
                {
                    for (int i = 1; i < strlist.Length; i++)
                    {
                        int charCode = Convert.ToInt32(strlist[i], 16);
                        strResult.Append((char)charCode);
                    }
                }
                catch (FormatException ex)
                {
                    return Regex.Unescape(str);
                }
            }
            return strResult.ToString();
        }
    }

 

 

感謝: https://blog.csdn.net/u011511086/article/details/72865006 

https://blog.csdn.net/cy_baicai/article/details/82897724

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM