C# 简体繁体转换

本文介绍了一种将简体中文转换为繁体中文,并修复在数据传输过程中因编码错误导致的乱码问题的技术。通过使用.NET Framework中的Microsoft.VisualBasic.Strings.StrConv函数和Encoding类,实现文字的繁简转换及乱码修复。
/// <summary>
        /// 简体转繁体
        /// </summary>
        /// <param name="converText">转换内容</param>
        /// <returns>繁体</returns>
        public static string ConvertBig5(string converText)
        {
            converText = Microsoft.VisualBasic.Strings.StrConv(converText, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, new System.Globalization.CultureInfo("zh-cn").LCID);
            Encoding eBig5 = Encoding.GetEncoding(950);
            byte[] bBig5 = eBig5.GetBytes(converText);
            converText = eBig5.GetString(bBig5);
            return converText;
        }

        /// <summary>
        /// 繁体转简体
        /// </summary>
        /// <param name="converText">转换内容</param>
        /// <returns>简体</returns>
        public static string ConvertGb2312(string converText)
        {
            converText = Microsoft.VisualBasic.Strings.StrConv(converText, Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, new System.Globalization.CultureInfo("zh-cn").LCID);
            Encoding eGb2312 = Encoding.GetEncoding(936);
            byte[] gb2312 = eGb2312.GetBytes(converText);
            converText = eGb2312.GetString(gb2312);
            return converText;
        }

        /// <summary>
        /// 将繁体乱码转繁体(已经是big5编码,在数据传输的过程中,被转成了UTF8,导致乱码)
        /// </summary>
        /// <param name="o">big5乱码</param>
        /// <param name="isConvert">是否要转换</param>
        /// <returns></returns>
        public static string ConvertBig5(object o, bool isConvert)
        {
            if (o == null) return string.Empty;
            if (!isConvert) return o.ToString();
            string result = o.ToString();
            try
            {
                byte[] buffer = Encoding.Default.GetBytes(o.ToString());
                result = Encoding.GetEncoding("big5").GetString(buffer);
            }
            catch { }
            return result;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值