MySQL C# Text Encoding Problems

Я изложу процесс, описанный в документации API YouTube v3 .

  1. Создайте / вход в учетную запись Google , которую хотите связать с использованием API YouTube.
  2. Создайте новый проект на https://console.developers.google.com/apis/credentials .

    • В левом верхнем углу рядом с логотипом API Google перейдите на . Выберите проект и . Создайте проект + kbd>.
    • Подождите , пока создание завершится.
  3. Создайте новый ключ API . Он понадобится вам для доступа к информации о видео в версии 3.

    • Если вы еще не там, перейдите в раздел «Учетные данные» в навигаторе с левой стороны, API и службы> Учетные данные .
    • На вкладке Credentials нажмите Create Credentials и выберите ключ API .
    • Скопируйте ключ API в буфер обмена.
  4. Предоставив идентификатор видео и вновь созданный ключ API , перейдите по этой ссылке, чтобы увидеть свою работу в действии: https://www.googleapis.com/youtube/v3/videos?id=&key=%20&part=snippet (без угловых скобок)
    • Дополнительную информацию о том, к чему вы можете получить, см. Здесь: https://developers.google.com/youtube/v3/getting-started#partial . Для удобства я скопирую один из их примеров здесь (Пример 4). Параметры fields и part в URL являются ключевыми здесь.

Пример

URL - это то, по какому URL вы можете перейти через браузер, чтобы проверить его. Взамен вы должны получить то, что под API response:.

URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
     &fields=items(id,snippet(channelId,title,categoryId),statistics)&part=snippet,statistics

Description: This example modifies the fields parameter from example 3
             so that in the API response, each video resource's snippet
             object only includes the channelId, title,
             and categoryId properties.

API response:

{
 "videos": [
  {
   "id": "7lCDEYXw3mM",
   "snippet": {
    "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
    "title": "Google I/O 101: Q&A On Using Google APIs",
    "categoryId": "28"
   },
   "statistics": {
    "viewCount": "3057",
    "likeCount": "25",
    "dislikeCount": "0",
    "favoriteCount": "17",
    "commentCount": "12"
   }
  }
 ]
}

Это дает вам информацию о видео в формате файла .json. Если ваш проект должен получить доступ к этой информации через JavaScript, вы можете перейти сюда: Как получить JSON из URL в Javascript? .

15
задан Peter 2 June 2009 в 22:37
поделиться

3 ответа

Даже если база данных настроена на UTF8, вы должны сделать следующее, чтобы получить поля Unicode для правильной работы:

  1. Убедитесь, что вы используете тип поля Unicode, например NVARCHAR или TEXT CHARSET utf8
  2. Каждый раз, когда вы вставляете что-либо в поле, вы должны добавлять к нему символ N, чтобы указать Данные Unicode, как показано в примерах ниже
  3. Каждый раз, когда вы выбираете на основе данных Unicode, убедитесь, что вы снова используете префикс N

MySqlCommand cmd = new MySqlCommand("INSERT INTO EXAMPLE (someField) VALUES (N'Unicode Data')");

MySqlCommand cmd2 = new MySqlCommand("SELECT * FROM EXAMPLE WHERE someField=N'Unicode Data'");

Если в базе данных не было '

3
ответ дан 1 December 2019 в 01:00
поделиться

Попробуйте установить кодировку с помощью запроса "установить имена utf8". Вы также можете установить этот параметр в конфигурации mysql.

1
ответ дан 1 December 2019 в 01:00
поделиться

Как говорили другие, это может быть проблема с базой данных, но она также может быть вызвана использованием старой версии коннектора .net mysql.

То, что я действительно хотел комментарий был преобразованием utf8 в utf16. Строка, которую вы пытаетесь преобразовать, на самом деле уже закодирована в Юникоде, поэтому ваши символы «Ã« »фактически занимают 4 байта (или больше) и больше не являются в момент вашего преобразования искажением символа« ë ». Вот почему ваше преобразование ничего не делает. Строка, которую вы пытаетесь преобразовать, на самом деле уже закодирована в Юникоде, поэтому ваши символы «Ã« »фактически занимают 4 байта (или больше) и больше не являются в момент вашего преобразования искажением символа« ë ». Вот почему ваше преобразование ничего не делает. Строка, которую вы пытаетесь преобразовать, на самом деле уже закодирована в Юникоде, поэтому ваши символы «Ã« »фактически занимают 4 байта (или больше) и больше не являются в момент вашего преобразования искажением символа« ë ». Вот почему ваше преобразование ничего не делает. Если вы хотите выполнить такое преобразование, я думаю, вам придется закодировать свою строку utf8 как старый стиль, 1 байт на символьную строку, используя кодовую страницу, где байтовые значения Ã и «фактически представляют последовательность байтов utf8 для ë, а затем обрабатывать байты этой новой строки как строку utf8. Интересные штуки.

1
ответ дан 1 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: