Google cloud platform 非拉丁字符是RESTful Google Translate API v2下的下划线
我试图使用谷歌的翻译API中的翻译方法,但由于某些原因,我得到的翻译用下划线替换了非拉丁字符 例如,使用命令行上的curl: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'
$ 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
字段)fetch
在JavaScript中创建请求,并使用Chrome的开发者工具的网络选项卡的“复制为cURL(Bash)”命令获取要使用的终端命令我认为这是一个字符串编码问题 我假设您的HTTP请求正文是使用
application/x-www-form-urlencoded
-发送的,它不支持将0x7F
(128)以上的字符作为文本,请参见此处:
我建议:
POST
带有显式内容类型:带有charset=utf-8
字段集的application/json
头。(x-www-form-urlencoded
不支持charset
字段)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!你说得对,我认为这是一个终端问题,基于将谷歌翻译粘贴到我的提示符中,这样就可以对终端进行故障排除并发布我的解决方案。