From 9d73088366db1872bbbe090bbedc5ed56d7e4b5a Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Thu, 24 Mar 2005 20:14:36 +0000
Subject: [PATCH] =?UTF-8?q?Corriger=20les=20caract=C3=A8res=20de=20contr?=
 =?UTF-8?q?=C3=B4le=20ill=C3=A9gaux=20en=20W3C-land,=20et=20inutiles=20ail?=
 =?UTF-8?q?leurs?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/inc_filtres.php3 | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/ecrire/inc_filtres.php3 b/ecrire/inc_filtres.php3
index d6b57c9c15..dbaad0ba94 100644
--- a/ecrire/inc_filtres.php3
+++ b/ecrire/inc_filtres.php3
@@ -47,6 +47,13 @@ function entites_unicode($texte) {
 	return charset2unicode($texte);
 }
 
+// caracteres de controle - http://www.w3.org/TR/REC-xml/#charsets
+function supprimer_caracteres_illegaux($texte) {
+	$from = "\x0\x1\x2\x3\x4\x5\x6\x7\x8\xB\xC\xE\xF\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F";
+	$to = str_repeat('-', strlen($from));
+	return strtr($texte, $from, $to);
+}
+
 // Nettoyer les backend
 function texte_backend($texte) {
 
@@ -163,6 +170,9 @@ function corriger_caracteres($texte) {
 			chr(194).chr(133) => '...'
 		);
 	}
+
+	$texte = supprimer_caracteres_illegaux($texte);
+
 	$charset = lire_meta('charset');
 	if (!$trans[$charset]) return $texte;
 	return strtr($texte, $trans[$charset]);
-- 
GitLab