Действия в Google Node.js SDK Unicode - PullRequest
0 голосов
/ 08 мая 2018

Как мне очень просто показать символ евро в Google Assistant? Каждый раз, когда я пытаюсь это сделать, я получаю символ в другой кодировке. Какую простую вещь мне не хватает?

Actions-on-Google SDK версии 2.0.1

const { dialogflow } = require('actions-on-google')

const app = dialogflow({ debug: true })

app.intent('euro-intent', (conv) => {
  console.log('€')
  conv.ask('€')
})

exports.myBot = app

Мое действие - вызвать webhook на AWS API Gateway, который подключен к лямбда-функции с помощью Node.js v 8.10. Журналы CloudWatch показывают

{
    "payload": {
        "google": {
            "expectUserResponse": true,
            "richResponse": {
                "items": [
                    {
                        "simpleResponse": {
                            "textToSpeech": "€"
                        }
                    }
                ]
            },
            "userStorage": "{\"data\":{}}"
        }
    },
    "outputContexts": [
        {
            "name": "projects/newagent-9bde7/agent/sessions/1525808242247/contexts/_actions_on_google",
            "lifespanCount": 99,
            "parameters": {
                "data": "{}"
            }
        }
    ]
}

Тем не менее, я получаю ниже в симуляторе.

euro

1 Ответ

0 голосов
/ 15 мая 2018

В вашем веб-крюке используйте Unicode для ЕВРО-ЗНАК . Unicode для EURO SIGN равен U + 20AC

В вашей реализации Node.js используйте обозначение '\ u20ac' .

В строковом значении нотация '\ u' указывает, что значение является символом Unicode, обозначаемым четырьмя шестнадцатеричными цифрами.

Вот версия со значением Unicode:

const { dialogflow } = require('actions-on-google')

const app = dialogflow({ debug: true })

app.intent('euro-intent', (conv) => {
  console.log('\u20ac')
  conv.ask('\u20ac')
})

exports.myBot = app
...