翻译谷歌翻译返回结果,即百分比编码

时间:2017-03-01 06:32:25

标签: google-api

我正在尝试将输入文本从英语翻译成泰米尔语。为此,我使用了以下代码段。

<form id="Master_form" class="form-horizontal">
    <div class="panel panel-default">
        <div class="panel-body" style="padding-top:6px;padding-bottom:2px">
            <div class="row" style="padding-bottom:15px">

                <div class="col-sm-4">
                    <div class="form-group">
                        <input id="enText" type="text" value="">
                    </div>
                </div>
                <div class="col-sm-4">
                    <div class="form-group">
                        <input id="tnText" type="text" value="">
                    </div>
                </div>
            </div>
        </div>
    </div>
</form>
<script>
    $("#enText").keyup(function () {
        var id = $('#enText').val();
        $.ajax({
            url: '@Url.Action("Foo", "Translate")',
            type: 'GET',
            dataType: 'json',
            cache: false,
            data: { 'id': id },
            success: function (result) {
                //var res =unescapeUTF8EscapeSeq(result);
                $('#tnText').val(res);
            },
            error: function () {
                alert('Error occured');
            }
        });
    });

</script>

背后的代码是

 [HttpGet]
        public JsonResult Foo(string id)
        {
            Translate trans = new Translate();
            trans.engText = "";
            trans.tmText = "";
            var langpair = "en%7Cta#en/ta/" + id;
            string url = String.Format("http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}", id, langpair);
            WebClient webClient = new WebClient();
            webClient.Encoding = System.Text.Encoding.UTF8;
            string result = webClient.DownloadString(url);
            result = result.Substring(result.IndexOf("<span title=\"") + "<span title=\"".Length);
            result = result.Substring(result.IndexOf(">") + 1);
            result = result.Substring(0, result.IndexOf("</span>"));
            //result = UnescapeHex(result);
            return Json(result.Trim(), JsonRequestBehavior.AllowGet);
        }

当我输入SARA时,结果返回&#2970;&#3006;&#2992;&#3006;。 当它粘贴在谷歌时它显示翻译的文本。但在应用程序中它没有被转换。

请提供您有价值的想法,以便理清这一点。

1 个答案:

答案 0 :(得分:0)

我通过绑定textarea中的值来解决这个问题,它显示了已解码的文本。

   $("#" + src).keyup(function () {
        //$("#" + src).change(function () {
            var id = $('#' + src).val();
            $.ajax({
                url: '@Url.Action("Foo", "Translate")',
                type: 'GET',
                dataType: 'json',
                cache: false,
                data: { 'id': id },
                success: function (result) {
                    //var res =unescapeUTF8EscapeSeq(result);
                    //$('#tnText').val(res);
                    //$('#tnText').val(result);
                    $('#' + dest).val(decodeEntities(result));
                },
                error: function () {
                    alert('Error occured');
                }
            });
        })


function decodeEntities(input) {
    var y = document.createElement('textarea');
    y.innerHTML = input;
    return y.value;
}