Получение странных кодировок с помощью nextjs и GraphQL при сохранении в БД

#javascript #postgresql #graphql #next.js

#javascript #postgresql #graphql #next.js

Вопрос:

Я собираю имена в своей базе данных из зарубежных стран, что означает, что по какой-то причине некоторые символы нелегко сохранить в моей БД:

введите описание изображения здесь

Пример имени, которое хранится неправильно:

Moretó Font

Это база данных postgres со слоем GraphQL для получения данных.

Информация о БД:

 psqlDB| TF8 | en_GB.UTF-8 | en_GB.UTF-8 | 
 

У меня <meta charSet="utf-8"/> на странице

Я использую:

  • postgres v12
  • node.js v14.15.4
  • nextjs v10
  • graphql v15.4
  • postgraphile: v4.5.5

postgraphile генерирует мои схемы и разрешает их для меня, поэтому типичная запись в мою БД выглядит как в моем приложении nextjs (javascript):

 mutation createArtist(
  $firstname: String!
  $surname: String!
) {
  createArtist(
    input: {
      artist: {
        firstname: $firstname
        surname: $surname
      }
    }
  ) {
    clientMutationId
  }
}

create({ variables: { firstname: 'jamie', surname: 'hutber'} })
 

Интересно, нужно ли мне удалять все эти символы при сохранении их в БД?

Комментарии:

1. Какова кодировка символов базы данных?

2. Я считаю en_GB.UTF-8 , что это?

3. Эти вопросительные знаки означают, что документ ANSI отображается так, как если бы он был UTF-8. Недостаточно иметь эту <meta> строку, вам нужно убедиться, что ваши фактические HTML-документы / шаблоны на самом деле являются UTF-8. Откройте любой из них в своей IDE и проверьте строку состояния внизу. Он должен показывать формат.

4. не может ли проблема быть в случае верблюда charSet (если я имею в виду не компонент React)

5. @t3__rry когда страница отображается как html, который будет выведен правильно: <meta charset="utf-8">