Помітивши, що програма, як правило, відкидає випадкові електронні листи через неправильні значення рядкових помилок, я перейшов і переключив багато текстових стовпців, щоб використовувати utf8діаграму стовпців та колонку за замовчуванням collate ( utf8_general_ci), щоб вона їх прийняла. Це виправило більшість помилок і змусило програму припиняти отримувати помилки sql, коли вона потрапляла і на нелатинські електронні листи.
Незважаючи на це, деякі електронні листи все ще спричиняють потрапляння програми на помилки помилки рядкового значення: (Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)
Стовпчик вмісту - це MEDIUMTEXTтаблиця даних, яка використовує схему utf8стовпців та utf8_general_ciпорівняння стовпців. У цьому стовпці немає жодних прапорів, які я можу переключити.
Маючи на увазі, що я не хочу торкатися або навіть дивитися на вихідний код програми, якщо це абсолютно не потрібно:
- Що викликає цю помилку? (так, я знаю, що в електронних листах повна випадкового сміття, але я думав, що utf8 буде досить дозвільним)
- Як я можу це виправити?
- Які ймовірні наслідки такої виправлення?
Я вважав, що переходити на varf utf8 ([деяка велика кількість]) із увімкненим бінарним прапором, але я досить незнайомий з MySQL, і не маю уявлення, чи має таке виправлення сенс.