I just found a significant bug that magically switches all language-specific characters to ugly nonsense-characters in all blog entries!
But keep reading - I found a fix
Here is my scenario, where I'm able to reproduce this bug easily:
- s9y release: version 1.2
character-set when installing blog: latin1 (native)
to change my blog title.administration -> configuration
Right after saving that change, all my umlaut-characters showed up wrong! So I returned to the configuration menu and noticed, that there was UTF-8 configured - which of course did not match my initial setup. "No problemo" I thought and changed that back to 'native'. But no luck! Still no umlauts visible...
After hunting the problem for multiple hours, by restoring my blog from backups and diff'ing the SQL-statements I finally managed to fix the problem!
In the table 'serendipity_config' I changed the value of 'charset' from '' to 'UTF-8/' and voilà - umlauts back to live!
Here's the exact SQL-statement I've been using for the fix:
I then tried to reproduce the problem and yes I could - here are my observations:UPDATE `serendipity_config` SET `value` = 'UTF-8/' WHERE CONVERT( `name` USING utf8 ) = 'charset' AND CONVERT( `value` USING utf8 ) = '' AND `authorid` =0 LIMIT 1 ;
In the administration->configuration-page...
- Setting the 'Charset selection' option to 'UTF8' writes 'UTF-8/' to the value columen in the above mentioned 'charset' record. It also writes 'utf8' to the variable $serendipity['dbCharset'] which sounds OK.
Setting the 'Charset selection' option to 'Native' clears the value columen in the above mentioned 'charset' record.<br>
!!But it does not change the variable $serendipity['dbCharset'] which probably is wrong (in my case 'latin1')!!
</list>
<b>However, the major problem - at least in my case - was, that the configration-pages comes up with 'UTF8' as the default setting and writes that value even if you change a totally different option!</b>
It seems like the charset setting of 'latin1' in the MySQL-DB I chose during installation of s9y, is not recognized in the configuration-page.
And as it doesn't correctly update the charset-settings when choosing 'native' the user ends up in a dead-end!
I found at least one posting of another user (http://board.s9y.org/viewtopic.php?t=10 ... light=utf8) who seemed to have exactly the same problem and got no solution.
hth,
workaholic.
BTW: it seems as I'm not able to switch the 'Language'-Setting in the administration->configuration page at all...
Selecting any other language seems not to be saved, as no change is visibile and returning to the config-page keeps showing me 'german'.
Any clue?