7. November 2025

WordPress & ACF:
ASCII Sonderzeichen automatisch entfernen

Beim Kopieren von Texten aus PDF-Dateien wandern oft unsichtbare ASCII Sonderzeichen in WordPress-Beiträge beziehungsweise Advanced Custom Fields Textfelder, die dann auf der Website für unschöne Darstellungsfehler sorgen können. Mit dieser PHP-Funktion samt passenden Aufrufen werden diese Sonderzeichen beim Sichern automatisch entfernt.

<?php

/**
 * Unsichtbare ASCII Sonderzeichen entfernen
 */
function mn_sanitize_invisible_characters($string)
{
	if (!is_string($string) || $string === '') {
		return $string;
	}

	// Normalize encoding (repairs malformed UTF-8 sequences)
	$string = mb_convert_encoding($string, 'UTF-8', 'UTF-8');

	// Remove ASCII + extended control chars (C0 + C1), except \n, \r, \t
	$string = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F\x80-\x9F]/u', '', $string);

	// Remove zero-width + BOM + NBSP (replace with normal space)
	$string = preg_replace('/[\x{200B}-\x{200D}\x{FEFF}\x{00A0}]/u', ' ', $string);

	return $string;
}

/**
 * Post-Inhalte beim Sichern anpassen
 */
add_filter('content_save_pre', function($value)
 {
	 $value=mn_sanitize_invisible_characters($value); 
	 return $value;
 }, 10, 1);

/**
 * ACF-Inhalte beim Sichern anpassen
 */
add_filter('acf/update_value', function($value)
 {
	 $value=mn_sanitize_invisible_characters($value); 
	 return $value;
 }, 10, 1);