Добре - ще публикувам собствен отговор за всеки друг, който кацне тук:(бях виждал това някъде другаде, но не му вярвах тогава, защото нямаше обяснение).
Когато SQL Format() превръща число в низ, той използва променливата character_set_results Разделът Променливи на .PMA показваше това като "utf8", но след това на ред по-долу пишеше (стойност на сесията) =utf8mb4.
Така че знаех, че PMA отменя сървъра по подразбиране. Моят истински проблем беше, че аз не можах да намеря начин да променя това замяна - или чрез използване на настройката [mysqld] skip-character-set-client-handshake... или чрез редактиране на файла php.config.inc. Днес имах пробив.. Установих, че ако Използвах същия PMA за свързване към и по-стар MySQL сървър, проблемът не се появи. Това предполагаше, че PMA налага utf8mb4 на по-нови (способни) сървъри, но не и на по-стари. Направих текстово търсене на phpmyadmin за низа 'mb4' и намери следния код в класа:phpMyAdmin/libraries/DatabaseInterface.class.php
// Skip charsets for Drizzle
if (!PMA_DRIZZLE) {
if (PMA_MYSQL_INT_VERSION > 50503) {
$default_charset = 'utf8mb4';
$default_collation = 'utf8mb4_general_ci';
} else {
$default_charset = 'utf8';
$default_collation = 'utf8_general_ci';
}
PMA_MYSQL_INT_VERSION> 50503 изглежда отговаря на моята теория за по-старите версии на mysql, така че направих резервно копие на файла и редактирах класа, заменяйки utf8mb4 с utf8 в тази функция.phpMyAdmin вече показва какво искам в раздела си с променливи, а функцията Format() сега връща това, което очаквам.