"UTF-8 (8-bit Unicode Transformation Format) is a lossless, variable-length character encoding for Unicode created by Ken Thompson and Rob Pike. It uses groups of bytes to represent the Unicode standard for the alphabets of many of the world's languages." (Wikipedia). Further information may be found at UTF-8.com.
WIKINDX uses UTF-8 encoding throughout and all template header.tpl files must contain the line:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
If web browser output has not been UTF-8 encoded, non-English characters may display as '?' or their literal UTF-8 representation. As long as the charset in header.tpl is set to UTF-8, all form input from the user is automatically stored in the database as UTF-8 and, once requested from the database, will be displayed in its original and correct character formatting in the web browser. The one exception to this is where a web server such as Apache sets a non-UTF-8 character set that will override the browser form input character set. Fortunately, WIKINDX is smart enough to recognise non-UTF-8 characters and will encode accordingly when inserting data in the database.
However, because the charset is UTF-8, all text destined for browser display that does not originate in the database via form input or text uploading (importing bibTeX or Endnote bibliographies) must be encoded in UTF-8 prior to browser display. This includes all text in the files within the languages/ folder; if you are a translator working on files within languages/, you will need to encode each file to UTF-8 prior to use.
Developers attempting to decode UTF-8 from the database for certain operations beware! Some preg_xxx() operations interfere with the UTF-8 encoding of data in the database producing incorrect browser display -- you may need to decode the UTF-8 first then finally utf8_encode(). Do not use PHP's utf8_decode()! Use the method UTF8::decodeUtf8(STRING: $string).