From 273c6c5b97969c37e14be1f13f2bf364fe9d474d Mon Sep 17 00:00:00 2001 From: Mitt <10653144+MittWillson@users.noreply.github.com> Date: Tue, 5 Dec 2023 21:13:16 +0800 Subject: [PATCH] fix: grabled characters when oid already UTF-8 (#15615) --- includes/discovery/sensors/rittal-cmc-iii-sensors.inc.php | 5 ++++- includes/polling/ports.inc.php | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/includes/discovery/sensors/rittal-cmc-iii-sensors.inc.php b/includes/discovery/sensors/rittal-cmc-iii-sensors.inc.php index 0542d09b55..72da5b569e 100644 --- a/includes/discovery/sensors/rittal-cmc-iii-sensors.inc.php +++ b/includes/discovery/sensors/rittal-cmc-iii-sensors.inc.php @@ -22,6 +22,9 @@ * @copyright 2020 Denny Friebe * @author Denny Friebe */ + +use LibreNMS\Util\StringHelpers; + $cmc_iii_var_table = snmpwalk_cache_oid($device, 'cmcIIIVarTable', [], 'RITTAL-CMC-III-MIB', null); $cmc_iii_sensors = []; @@ -77,7 +80,7 @@ foreach ($cmc_iii_var_table as $index => $entry) { } // encode string to ensure that degree sign may be used properly for unit comparison - $unit = utf8_encode($entry['cmcIIIVarUnit']); + $unit = StringHelpers::inferEncoding($entry['cmcIIIVarUnit']); $type = 'state'; $temperature_units = ['degree C', 'degree F', '°C', '°F']; if ($unit == 'mA') { diff --git a/includes/polling/ports.inc.php b/includes/polling/ports.inc.php index 91fb969366..d71056b9b5 100644 --- a/includes/polling/ports.inc.php +++ b/includes/polling/ports.inc.php @@ -6,6 +6,7 @@ use LibreNMS\RRD\RrdDefinition; use LibreNMS\Util\Debug; use LibreNMS\Util\Mac; use LibreNMS\Util\Number; +use LibreNMS\Util\StringHelpers; // Build SNMP Cache Array $data_oids = [ @@ -676,9 +677,9 @@ foreach ($ports as $port) { // handle legacy '1' setting, otherwise use value set by override $current_oid = $ifAlias_override === '1' ? $port['ifAlias'] : $ifAlias_override; } else { - $current_oid = \LibreNMS\Util\StringHelpers::inferEncoding($this_port['ifAlias']); + $current_oid = $this_port['ifAlias']; } - $current_oid = utf8_encode($current_oid); // prevent invalid non-utf8 characters + $current_oid = StringHelpers::inferEncoding($current_oid); // prevent invalid non-utf8 characters } if ($oid == 'ifSpeed') { $ifSpeed_override = DeviceCache::getPrimary()->getAttrib('ifSpeed:' . $port['ifName']);