improved utf8 conversion
This commit is contained in:
		@@ -6,6 +6,7 @@ use ManiaControl\Callbacks\Callbacks;
 | 
			
		||||
use ManiaControl\Files\FileUtil;
 | 
			
		||||
use ManiaControl\Plugins\PluginManager;
 | 
			
		||||
use ManiaControl\Update\UpdateManager;
 | 
			
		||||
use ManiaControl\Utils\Formatter;
 | 
			
		||||
use Maniaplanet\DedicatedServer\Xmlrpc\TransportException;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -111,7 +112,7 @@ class ErrorHandler {
 | 
			
		||||
			// Report error
 | 
			
		||||
			$report            = array();
 | 
			
		||||
			$report['Type']    = 'Error';
 | 
			
		||||
			$report['Message'] = $message;
 | 
			
		||||
			$report['Message'] = Formatter::utf8($message);
 | 
			
		||||
			if ($fileLine) {
 | 
			
		||||
				$report['FileLine'] = $fileLine;
 | 
			
		||||
			}
 | 
			
		||||
@@ -266,7 +267,7 @@ class ErrorHandler {
 | 
			
		||||
				$type = gettype($arg);
 | 
			
		||||
				$string .= $type . '(';
 | 
			
		||||
				if (is_string($arg)) {
 | 
			
		||||
					$param = iconv('UTF-8', 'UTF-8//IGNORE', $arg);
 | 
			
		||||
					$param = Formatter::utf8($arg);
 | 
			
		||||
					if (strlen($param) > 20) {
 | 
			
		||||
						$param = substr($param, 0, 20) . '..';
 | 
			
		||||
					}
 | 
			
		||||
 
 | 
			
		||||
@@ -171,4 +171,23 @@ abstract class Formatter {
 | 
			
		||||
		$bool = filter_var($value, FILTER_VALIDATE_BOOLEAN);
 | 
			
		||||
		return $bool;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Make sure the given Text is encoded in UTF-8
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param string $text
 | 
			
		||||
	 * @return string
 | 
			
		||||
	 */
 | 
			
		||||
	public static function utf8($text) {
 | 
			
		||||
		if (!$text) {
 | 
			
		||||
			return $text;
 | 
			
		||||
		}
 | 
			
		||||
		$value = @iconv('UTF-8', 'UTF-8//IGNORE', $text);
 | 
			
		||||
		if (!$value) {
 | 
			
		||||
			// Prevent bugged iconv() of some systems
 | 
			
		||||
			$text  = preg_replace('/[^[:print:]]/', '', $text);
 | 
			
		||||
			$value = iconv('UTF-8', 'UTF-8//IGNORE', $text);
 | 
			
		||||
		}
 | 
			
		||||
		return $value;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user