Я использую инвентарь OCS для инвентаризации наших ПК. Он работает почти отлично, но ... но 99% этих компьютеров работают под Windows (R): XP и Seven. И нет никакого стандарта для информации WMI.MySQL: сочетание кодировки в том же столбце
Например, OCS Агент (резидентной программы на целевом компьютере, который собирает данные и отправляет их на OCS сервер) может получить ответ как «Realtek PCIe GBE Family Controller (1 Гбит/с)» (чистый английский, кодирование не является проблемой) или как «¨ £ ¨« á á ¥ ¥ ¢ ® ¥ ¯® ¯ á ¥ ¥ ¥ ¥ Intel (R) 82566DM-2 (100 Мбит/с) "(неверно , Русский, CP1251) или как «Realtek RTL8169/8110 Семейный сетевой адаптер Gigabit Ethernet - 100 Мбит/с» (неверно, русский, CP866). Или "VIA Rhine III Fast Ethernet Adapter - Минипорт планировщика пакетов (100 Мб/с)" (правильный, русский, UTF8 или другой Unicode)
У меня нет никакого способа, чтобы заставить Windows вернуть эти результаты только в одной кодировке: кажется, все зависит от производителей драйверов: какая кодировка использовалась в файле .INF драйвера, эта кодировка будет возвращена WMI.
В основном это не проблема, но мои боссы очень не любят видеть «иероглифы» в квартальных отчетах о состоянии нашей ИТ-инфраструктуры. И они кажутся правильными.
Есть ли способ перекодировать отдельные поля из одной кодировки в другую на лету? Я не буду перекодировать весь столбец из-за смешанного содержимого. Я могу грубо определить, какая кодировка была использована, но я не знаю, как перекодировать , используя только SQL-язык MySQL для получения правильных отчетов.
Любые рабочие предложения, пожалуйста?