MySQL выдает ошибку 1304 с данными UTF-8 в столбце utf8mb4Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 MySQL выдает ошибку 1304 с данными UTF-8 в столбце utf8mb4

Сообщение Anonymous »

У меня есть процесс на основе PHP (в данном случае с PHP 8.1.2), который регулярно запрашивает основной маршрутизатор в нашей сети, чтобы получить список текущих сетевых устройств, и сохраняет их в таблице для последующего использования в других процессах. . (Это также полезно в тех случаях, когда IP-адрес некоторого хоста по какой-либо причине не попал в DNS).
Одним из атрибутов, хранящихся в этой таблице, является имя хоста, как возвращается маршрутизатором. В (только) одном случае это имя хоста, очевидно, является значением, выходящим за пределы диапазона набора символов столбца UTF8MB4, выделенного для этого столбца, и MySQL выдает ошибку, когда для этого устройства поступает UPDATE:

Код: Выделить всё

General error: 1366 Incorrect string value: '\xE5\x01\x10p\xB4\xAF...' for column 'hostname' at row 1"
Чтобы определить правильный набор символов, я добавил

Код: Выделить всё

$lov->writeLogLine( ['Encoding for hostname is %s', mb_detect_encoding($data['hostname']) ] ) ;
в процесс, когда обнаружена ошибка SQL и возвращается результат «UTF-8».
Я знаю, что существуют разновидности UTF-8, и я не знаю, как определить, какого именно типа должен быть этот столбец (документация маршрутизатора не определяет) (и мы [пока] не будем вдаваться в подробности, почему маршрутизатор возвращает бессмысленные имена хостов - то есть снаружи моя сфера поддержки). Есть ли волшебное значение или волшебный метод, который я мог бы использовать, чтобы удовлетворить как PHP, так и MySQL - заставить их хорошо работать вместе?

Подробнее здесь: https://stackoverflow.com/questions/787 ... mb4-column
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Черный форматтер для Python выдает ошибку декодирования «не символ utf-8». Как я могу сказать черному использовать «UTF-
    Anonymous » » в форуме Python
    0 Ответы
    63 Просмотры
    Последнее сообщение Anonymous
  • Невозможно сохранить китайский символ « » в MySQL с кодировкой utf8mb4 [закрыто]
    Anonymous » » в форуме Php
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Статус кодировки UTF8/utf8mb4 в MySQL 8.0 и PHP 8.1?
    Anonymous » » в форуме Php
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Статус кодировки UTF8/utf8mb4 в MySQL 8.0 и PHP 8.1? [дубликат]
    Anonymous » » в форуме Php
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Python использует mysql SELECT успешно, но mysql.connector по-прежнему выдает ошибку [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»