If you are using the Encyclopedia module in your own language, which happens to be different from english, you may encounter problems like the following:
If you enter a term in your language, it is not recognized, if you enter it in english, it is.
Sorting of Encyclopedia terms is O.K. for english terms, but not O.K. for terms in your language.
By default, MySQL uses the ISO-8859-1 (Latin1) character set with sorting according to Swedish/Finnish. This is the character set suitable in the USA and western Europe.
All standard MySQL binaries are compiled with --with-extra-charsets=complex. This will add code to all standard programs to be able to handle latin1 and all multi-byte character sets within the
binary. Other character sets will be loaded from a character-set definition file when needed.
The character set determines what characters are allowed in names and how things are sorted by the ORDER BY and GROUP BY clauses of the SELECT statement.
You can change the character set with the --default-character-set option when you start the server. The character sets available depend on the --with-charset=charset and --with-extra-charsets=
list-of-charset | complex | all | none options to configure, and the character set configuration files listed in `SHAREDIR/charsets/Index'.
Also, the user comments for the German character set in MySQL suggest that, if you change the default character
encoding of mysqldd after you have already entered some texts with a different character set previously, then you will have to export the database and reimport it, for all texts to be stored
with the right character encoding. "REPAIR" or "MYISAMCHECK" (see Section 26.1) will not help, even if the documentation wants to make us believe they
will.
You can see the character set used in a table by issuing the command
myisamchk -dvv table.MYI
If it is not the one you want, then the only thing that helps is to export the DB and reimport it with:
Second, even if you set the character encoding correctly in MySQL, you may still want to change the $alphabet array in the alpha() function of modules/Encyclopedia/index.php:
Add the letters of your non-english alphabet there, either by intermixing them with the english ones, or by deleting the english ones alltogether.
The way all this works in PHP-Nuke, is by constructing a database query that finds all entries of the given encyclopedia id having a title which, when transformed to all uppercase, starts "like"
the given letter, where the letter can only be one of the entries in the $alphabet array. See for yourself in function terms() of modules/Encyclopedia/index.php:
$sql = "SELECT tid, title FROM ".$prefix."_encyclopedia_text
WHERE UPPER(title) LIKE '$ltr%' AND eid='$eid'";
Now, what if you want to mix chinese and greek together?