2

Я пытаюсь вставить документ в мой cloudant, как показано ниже.

@echo OFF
SPEECH_TEXT="Call me Ishmael. Some years ago-never mind how long precisely-"
curl -X POST -k 'https://<user id>.cloudant.com/testdb' -P 443 -H 'Content-Type:application/json' -d '{"transcript":"'"$SPEECH_TEXT"'"}' | jq-win64.exe

Получение ниже ошибки:

{
  "error": "bad_request",
  "reason": "invalid UTF-8 JSON"
}

Если я заменю переменную простым текстом в команде, она будет работать нормально. Любая помощь высоко ценится.

1 ответ1

1

Я обычно иду маршрут printf для чистого кода:

Пример:

[user@localhost ~]$ SPEECH_TEXT="something"
[user@localhost ~]$ body=`printf '{"transcript":"%s"}' $SPEECH_TEXT`
[user@localhost ~]$ echo $body
{"transcript":"something"}
[user@localhost ~]$ 

В твоем случае:

curl -X POST -k 'https://cloudant.com/testdb' -P 443 -H 'Content-Type:application/json' -d `printf '{"transcript":"%s"}' $SPEECH_TEXT`

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .