Taff, the logic regarding the collation stuff is the following:
1/ first determine the charset of the database (ajaxSearchPopup.class.inc.php - line 218)
$this->dbCharset = $database_connection_charset; // database charset (search.class.inc.php - line 77)
2/ I
make the supposition that your page charset is coherent with your database charset
In your case, as i understand, your database charset is latin1, $this->pageCharset[’latin1’]) give a pageCharset = ’ISO-8859-1’
3/ If the page charset is different of UTF-8, first I convert the searchstring to be coherent with the database charset (ajaxSearchPopup.class.inc.php - lines 300 to 303):
if (($this->pgCharset != 'UTF-8') && (ini_get('mbstring.encoding_translation') == '' || strtolower(ini_get('mbstring.http_input')) == 'pass')) {
$this->searchString = mb_convert_encoding($this->searchString, $this->pgCharset , "UTF-8");
$this->needsConvert = true;
}
4/ As the result from the database is encoded in "latin1" a conversion to "UTF-8" is required before to output in the ajax window (UTF-8 required). So as $this->needsConvert = true finally you need to convert your result before output to the window (ajaxSearchPopup.class.inc.php - line 206)
if ($this->needsConvert) $results = mb_convert_encoding($results,"UTF-8",$this->pgCharset);
I have a French site, with a latin1 encoded database and ’ISO-8859-1’ encoded html pages. And I have no issues. I could search terms with accented letters.