diff --git a/libraries/common.lib.php b/libraries/common.lib.php index f072233..2e18474 100644 --- a/libraries/common.lib.php +++ b/libraries/common.lib.php @@ -2596,6 +2596,17 @@ function PMA_printable_bit_value($value, $length) { } /** + * Verifies whether the value contains a non-printable character + * + * @uses preg_match() + * @param string $value + * @return boolean + */ +function PMA_contains_nonprintable_ascii($value) { + return preg_match('@[^[:print:]]@', $value); +} + +/** * Converts a BIT type default value * for example, b'010' becomes 010 * diff --git a/libraries/display_tbl.lib.php b/libraries/display_tbl.lib.php index 41bb987..05feefb 100644 --- a/libraries/display_tbl.lib.php +++ b/libraries/display_tbl.lib.php @@ -1368,7 +1368,7 @@ function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) { if ($_SESSION['tmp_user_values']['display_binary']) { // user asked to see the real contents of BINARY // fields - if ($_SESSION['tmp_user_values']['display_binary_as_hex']) { + if ($_SESSION['tmp_user_values']['display_binary_as_hex'] && PMA_contains_nonprintable_ascii($row[$i])) { $row[$i] = bin2hex($row[$i]); } else {