百度翻译

/// <summary>
    /// 百度翻译
    /// </summary>
    public class BaiDuTransHelp
    {
        /// <summary>
        /// 密钥
        /// </summary>
        private readonly static string TransKey = ConfigurationManager.AppSettings["TransKey"];

        /// <summary>
        /// App ID
        /// </summary>
        private readonly static string AppID = ConfigurationManager.AppSettings["AppID"];

        /// <summary>
        /// 翻译
        /// </summary>
        /// <param name="query"></param>
        /// <param name="toLan">zh:中文,en:英语,cht:繁体中文</param>
        /// <returns></returns>
        public static string Trans(string query, string toLan)
        {
            WebClient client = new WebClient();
            Random rd = new Random();
            string rdNum = rd.Next(1000).ToString();

            string sign = AppID + GetUTF8Str(query) + rdNum + TransKey;

            sign = MD5.Md5Hash(sign);

            string url = string.Format("http://api.fanyi.baidu.com/api/trans/vip/translate?q={0}&from=auto&to={1}&appid={2}&salt={3}&sign={4}",
                HttpUtility.UrlEncode(query), HttpUtility.UrlEncode(toLan), HttpUtility.UrlEncode(AppID), HttpUtility.UrlEncode(rdNum), HttpUtility.UrlEncode(sign));
            var buffer = client.DownloadData(url);
            string result = Encoding.UTF8.GetString(buffer);
            StringReader sr = new StringReader(result);
            JsonTextReader jsonReader = new JsonTextReader(sr);
            JsonSerializer serializer = new JsonSerializer();
            var r = serializer.Deserialize<TransObj>(jsonReader);
            string toStr = string.Empty;
            if (r.trans_result != null)
            {
                toStr = r.trans_result[0].dst;
            }
            return toStr;
        }

        /// <summary>
        /// 获取Utf-8编码字符串
        /// </summary>
        /// <param name="unicodeString"></param>
        /// <returns></returns>
        public static string GetUTF8Str(string unicodeString)
        {
            UTF8Encoding utf8 = new UTF8Encoding();
            Byte[] encodedBytes = utf8.GetBytes(unicodeString);
            String decodedString = utf8.GetString(encodedBytes);
            return decodedString;
        }

        private class TransObj
        {
            public string from { get; set; }
            public string to { get; set; }
            public List<TransResult> trans_result { get; set; }
        }

        private class TransResult
        {
            public string src { get; set; }
            public string dst { get; set; }
        }
    }

 

转载于:https://www.cnblogs.com/tangchun/p/6950909.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值