Хобрук: Ваш путь к мастерству в программировании

Преобразование одинарных кавычек в специальные символы с помощью интерфейса командной строки AWS

Я создаю шаблоны SES с помощью интерфейса командной строки AWS, и у меня возникают проблемы с преобразованием одинарных кавычек в специальные символы при отправке электронных писем.

Это также происходит при выполнении операции размещения элемента DynamoDB с использованием интерфейса командной строки, когда строка содержит одинарную кавычку.

Я пробовал обратную косую черту, заключал цитату в двойные кавычки, затем экранировал ее и т. Д.

aws ses send-bulk-templated-email --cli-input-json file://test.json aws dynamodb put-item --table-name TABLE --item file://item.json

Пример элемента/теста (фрагменты json):

test: "SubjectPart":"С днем ​​рождения! Теперь, когда вам исполнилось 18 лет, больше участвуйте в управлении своим здравоохранением"

item: "S": "Теперь, когда тебе 18"

Выход:

С днем ​​рождения! Примите более активное участие в управлении своим здравоохранением, когда вам исполнилось 18 лет.

и

Теперь, когда тебе 18

Ожидал:

С днем ​​рождения! Примите более активное участие в управлении своим здравоохранением, когда вам исполнилось 18 лет.

и

Теперь, когда тебе 18


Ответы:


1

Предполагая, что вы используете Linux или Mac с оболочкой bash...

Вот пример того, как экранировать символы кавычек при использовании awscli:

aws dynamodb put-item \
    --table mytable \
    --item '{"id":{"S":"1"}, "name":{"S":"Fred'\''s Garage"}}'

Вот второй способ:

aws dynamodb put-item \
    --table mytable \
    --item $'{"id":{"S":"1"}, "name":{"S":"Fred\'s Garage"}}'

В последнем примере слова в форме $'string' обрабатываются особым образом и позволяют вам цитировать определенные символы.

15.08.2019

2

Welp после многих проб и ошибок, вот что сработало:

ты

Я понятия не имею, почему, но это произошло. Публикация этого ответа на случай, если другие испытают это.

Пример:

"SubjectPart":"С днем ​​рождения! Теперь, когда вам исполнилось 18 лет, принимайте более активное участие в управлении своим здоровьем"

Это даст вам ожидаемый результат.

15.08.2019
  • Также работал HTML-справочный код символьной сущности - 'будет вывод' 15.08.2019
  • ’ также, вероятно, сработало бы... но где-то там есть объяснение: you’re возникает из-за неправильной обработки юникода и может быть прослежено до логического объяснения. Если вы возьмете правую одинарную кавычку U+2019 и закодируете ее как UTF-8, байты будут шестнадцатеричными 0xE2 0x80 0x99, которые представляют собой десятичные значения 226 128 153, которые являются кодовыми точками для символов â € ™... поэтому я полагайте, что в какой-то момент вы либо дважды кодируете, либо обрабатываете уже закодированные байты как еще не закодированные символы, что приводит к их повторному кодированию с помощью SDK/CLI. Трудно сказать, где именно. 17.08.2019
  • Новые материалы

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...