首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非拉丁字符是RESTful Google翻译API v2下的下划线。

非拉丁字符是RESTful Google翻译API v2下的下划线。
EN

Stack Overflow用户
提问于 2019-03-19 19:54:43
回答 3查看 340关注 0票数 1

我试图使用谷歌的翻译方法,从它的翻译API作为文档的这里,但出于某种原因,我得到的翻译用下划线代替非拉丁字符。

例如,命令行上有curl:

代码语言:javascript
复制
$ curl -X POST 'https://translation.googleapis.com/language/translate/v2/?source=en&target=de&q=Practicing+diligently+each+day+means+inevitable+improvement.&key=MY_API_KEY'  
{
  "data": {
    "translations": [
      {
        "translatedText": "T_glich flei_ig zu _ben, bedeutet unausweichliche Verbesserung."
      }
    ]
  }
}

与translate.google.com从英语到德语的结果相比:

代码语言:javascript
复制
Täglich fleißig zu üben, bedeutet unausweichliche Verbesserung.

尤其是当目标语言是像日语这样不包含拉丁字母的语言时:

代码语言:javascript
复制
$ curl -X POST 'https://translation.googleapis.com/language/translate/v2/?source=en&target=ja&q=Practicing+diligently+each+day+means+inevitable+improvement.&key=MY_API_KEY' 
{
  "data": {
    "translations": [
      {
        "translatedText": "______________________________________________________"
      }
    ]
  }
}

也许这是试算表限制?然而,我在这个文档中看到的任何东西都不能说明这一点。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-19 20:13:41

有些尴尬的是,这实际上只是tmux的一个问题,它是我使用的终端复用器,用于读取我对Translation的每一个调用的输出,无论是用curl还是我正在编写的代码的打印输出。

根据问题,通过显式地告诉tmux启动UTF-8支持,即tmux -u,这是可以修复的。

感谢戴和丹尼尔指出一个潜在的终端问题。

票数 0
EN

Stack Overflow用户

发布于 2019-03-19 20:11:24

我认为这是一个字符串编码问题。

我假设您的HTTP请求主体是使用application/x-www-form-urlencoded -发送的,它不支持 (128)上面的字符作为文字文本,参见:应用程序/x-www-表单-urlencoded和charset="utf-8"?

我建议:

  1. 具有显式POST头的charset=utf-8字段集。(x-www-form-urlencoded不支持charset字段)。
  2. 确保您的终端使用UTF-8。
  3. 还可以看一下使用Wireshark这样的工具,或者使用fetchfetch中创建请求,并使用Chrome的Network的“复制为cURL (Bash)”命令来获取终端命令。
票数 0
EN

Stack Overflow用户

发布于 2019-03-19 21:56:33

我刚刚尝试了以下请求,效果很好:

代码语言:javascript
复制
curl -X POST "https://translation.googleapis.com/language/translate/v2?key=MY_API_KEY" \
-H "Content-Type: application/json" \
--data "{
        'q': 'Practicing diligently each day means inevitable improvement.',
        'source': 'en',
        'target': 'de'
}"

给出这个输出:

代码语言:javascript
复制
{
  "data": {
    "translations": [
      {
        "translatedText": "Täglich fleißig zu üben, bedeutet unausweichliche Verbesserung."
      }
    ]
  }
}

至于日本的产出:

代码语言:javascript
复制
{
  "data": {
    "translations": [
      {
        "translatedText": "毎日熱心に練習することは避けられない改善を意味します。"
      }
    ]
  }
}

希望它能帮上忙

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55249051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档