| ␊ | 
| private static function makeNonPrintableCharsVisible($line)␊ | 
| {␊ | 
| // This translates most of the C0 ASCII control characters into␊ | 
| // their visual counterparts in the 0x24## unicode plane␊ | 
| // (http://en.wikipedia.org/wiki/C0_and_C1_control_codes).␊ | 
| // We could add DEL (0x7F) to this set, but unfortunately this␊ | 
| // is not nicely mapped to 0x247F in the control plane, but 0x2421␊ | 
| // and adding an if expression below just for this is a little bit␊ | 
| // of a hassle. And of course, the more esoteric ones from C1 are␊ | 
| // missing as well...␊ | 
| return preg_replace('/([\x00-\x1F])/ue',␊ | 
| '"<span class=\"non-printable\" title=\"0x".strtoupper(bin2hex("\\1"))."\">".bin2hex("\\1")."</span>"',␊ | 
| '"<span class=\"non-printable\" title=\"0x".bin2hex("\\1")."\">$".bin2hex("\\1")."</span>"',␊ | 
| $line);␊ | 
| }␊ | 
| ␊ |