Anomalie #8254
fermé[ANALYSE] impossible de faire la recherche sur document ocerisé
Description
lorsque j’exécute le batch du fulltext, j'ai comme résultat en base la valeur 1 mais dans les logs j'obtiens une erreur
error 1 'from line 77 : iconv(): Detected an illegal character in input string'
Info 0 'FULLTEXT OK'
Du coup, je ne peux pas faire de recherche sur le contenu du courrier.
Dans ce fichier, il y a des caractères accentués en majuscule exemple É OU È. ces caractères ne sont pas reconnus par la commande iconv.
Dans la doc de la commande iconv : http://php.net/manual/fr/function.iconv.php
on a:
$text = "Ceci est le symbole de l'Euro '€'.";
echo 'Original : ', $text, PHP_EOL;
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo 'IGNORE : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo 'Brut : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;
Dans le code de l'appli, on a dans le fichier /var/www/html/maarch1706/apps/maarch_entreprise/tools/Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8.php à la ligne 77:
/**
* Reset token stream
*/
public function reset()
{
$this->_position = 0;
$this->_bytePosition = 0;
// convert input into UTF-8
if (strcasecmp($this->_encoding, 'utf8' ) != 0 &&
strcasecmp($this->_encoding, 'utf-8') != 0 ) {
$this->_input = iconv($this->_encoding, 'UTF-8', $this->_input);
$this->_encoding = 'UTF-8';
}
}
Je pense qu'il faut ajuster la commande avec
$this->_input = iconv($this->_encoding//TRANSLIT, 'UTF-8', $this->_input);
ou
$this->_input = iconv($this->_encoding//IGNORE, 'UTF-8', $this->_input);