[TYPO3-english] indexed_search in a Latin1/UTF-8 Environment
    Michael Michalowski 
    m.michalowski at hottgenroth.de
       
    Mon Oct 12 17:35:43 CEST 2009
    
    
  
hi!
 
I have a typo3 project where the database is latin1 (ISO-8859-1) encoded and the frontend output is printed with meta charset utf-8. Everything is running fine except indexed_search (which splits search words at german umlauts an garbles them).
 
So I tried to convert the system to real UTF-8 but failed. At first I tried to fix it with the extension convert2utf8 and backend charset settings to utf-8 (which resulted in rubbish at several places), then I tried to convert the database into utf-8 (which seemed to be fine, but failed for templavoilá data structures and serialized flex form contents).
 
Because the project is nearly online I decided that the latin1 backend is ok and looked for the problem with indexed_search. I found out that the search terms are delivered as latin1 to the plugin which expects utf-8 contents. So I changed one line in class.tx_indexedsearch.php (at line 435):
 
$inSW = substr($this->piVars['sword'],0,200);
 
to
 
$inSW = substr(iconv($GLOBALS['TSFE']->defaultCharSet, 'UTF-8', $this->piVars['sword']),0,200);
 
So, my question is the following: 
Is there any cleaner way to get index_search running in a latin1/utf-8 scenario? Why are the search terms passed as latin1 to the extension (search form page is utf-8!)? 
 
My goal is to find a solution which will survive my next typo update... ;)
 
Thanks for your thoughts.
 
best regards,
Michael
    
    
More information about the TYPO3-english
mailing list