Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 非拉丁字符是RESTful Google Translate API v2下的下划线_Google Cloud Platform_Google Translate - Fatal编程技术网

Google cloud platform 非拉丁字符是RESTful Google Translate API v2下的下划线

Google cloud platform 非拉丁字符是RESTful Google Translate API v2下的下划线,google-cloud-platform,google-translate,Google Cloud Platform,Google Translate,我试图使用谷歌的翻译API中的翻译方法,但由于某些原因,我得到的翻译用下划线替换了非拉丁字符 例如,使用命令行上的curl: $ 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'

我试图使用谷歌的翻译API中的翻译方法,但由于某些原因,我得到的翻译用下划线替换了非拉丁字符

例如,使用命令行上的curl:

$ 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的英译德结果相比:

Täglich fleißig zu üben, bedeutet unausweichliche Verbesserung.
当目标语言是日语这样不包含拉丁字符的语言时,情况尤其糟糕:

$ 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": "______________________________________________________"
      }
    ]
  }
}

也许这是试用帐户限制?然而,我在本文档中看到的任何内容都不能说明这一点。

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

我假设您的HTTP请求正文是使用
application/x-www-form-urlencoded
-发送的,它不支持将
0x7F
(128)以上的字符作为文本,请参见此处:

我建议:

  • POST
    带有显式
    内容类型:带有
    charset=utf-8
    字段集的application/json
    头。(
    x-www-form-urlencoded
    不支持
    charset
    字段)
  • 确保您的终端使用UTF-8
  • 还可以使用Wireshark之类的工具进行查看,或者使用
    fetch
    在JavaScript中创建请求,并使用Chrome的开发者工具的网络选项卡的“复制为cURL(Bash)”命令获取要使用的终端命令

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

    我假设您的HTTP请求正文是使用
    application/x-www-form-urlencoded
    -发送的,它不支持将
    0x7F
    (128)以上的字符作为文本,请参见此处:

    我建议:

  • POST
    带有显式
    内容类型:带有
    charset=utf-8
    字段集的application/json
    头。(
    x-www-form-urlencoded
    不支持
    charset
    字段)
  • 确保您的终端使用UTF-8
  • 还可以使用Wireshark之类的工具进行查看,或者使用
    fetch
    在JavaScript中创建请求,并使用Chrome的开发者工具的网络选项卡的“复制为cURL(Bash)”命令获取要使用的终端命令

  • 有点尴尬的是,这实际上只是
    tmux
    的一个问题,我使用终端多路复用器读取我对翻译API的每次调用的输出,包括
    curl
    和我正在编写的代码的打印输出

    根据,这可以通过明确告知
    tmux
    使用UTF-8支持启动来解决,即
    tmux-u


    感谢Dai和Daniel指出了一个潜在的终端问题。

    有点尴尬,这实际上只是tmux的一个问题,tmux是我用来读取每次调用翻译API的输出的终端多路复用器,使用
    curl
    和我正在编写的代码的打印输出

    根据,这可以通过明确告知
    tmux
    使用UTF-8支持启动来解决,即
    tmux-u


    感谢Dai和Daniel指出了潜在的终端问题。

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

    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'
    }"
    
    给出此输出:

    {
      "data": {
        "translations": [
          {
            "translatedText": "Täglich fleißig zu üben, bedeutet unausweichliche Verbesserung."
          }
        ]
      }
    }
    
    至于日本的产出:

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

    希望它有帮助

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

    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'
    }"
    
    给出此输出:

    {
      "data": {
        "translations": [
          {
            "translatedText": "Täglich fleißig zu üben, bedeutet unausweichliche Verbesserung."
          }
        ]
      }
    }
    
    至于日本的产出:

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

    希望有帮助

    您尝试过从应用程序运行它吗?也许curl不知道在你的终点该做什么Hanks!你是对的,我认为这是一个终端问题,基于将谷歌翻译粘贴到我的提示符中,这样就可以对终端进行故障排除并发布我的解决方案。你试过从应用程序运行它吗?也许curl不知道在你的终点该做什么Hanks!你说得对,我认为这是一个终端问题,基于将谷歌翻译粘贴到我的提示符中,这样就可以对终端进行故障排除并发布我的解决方案。