Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

UTF-8 solution

From MoodleDocs
Warning: This page is no longer in use. The information contained on the page should NOT be seen as relevant or reliable.

UTF-8 migration > UTF-8 justification > The solution

The solution

Now that we have explained all the problems with the schema used until now, and have viewed the benefits (immediate and future) of the migration to UTF-8, in this page we are going to organize the whole process of the conversion. Every required step will be defined briefly (you will be able to know more about each one in next chapters). Here it is:

  • Documenting and discussing plans: All the stuff you have read up to now, and in the rest of this Wiki page, plus active discussions in the Developer forum will be the source to understand the whole process. Aren't these enough?
  • Gathering detailed information from the community: To have a real perception of how the UTF utilities are going to work under different configurations, one simple test has been created. By running it against as many Moodle servers as possible we will be able to detect potential problems before release.
  • Stabilising min. requirements for Moodle 1.6: With the information gathered in the previous step, and based in the LAMP platform evolution, current Moodle requirements have to change. Not only the UTF-8 migration, but everything will benefit with the use of new versions of LAMP. Details are available in the next page.
  • Creating a common text library to be used everywhere: A lot of PHP functions are not UTF-8 safe and we must provide Moodle with their UTF-8 compliant alternatives. All these specialised functions will be grouped in a new library to maintain it easier. More information in the next page.
  • Moving language files: Every language pack needs to be converted to UTF-8 plus other adjustments to run smoothly under Moodle 1.6. To maintain everything working and trying to make things easier to translators (isolating them from technical and complex CVS operations) there is a plan. Just read it, and if you want, discuss it too in the Languages forum.
  • DB migration: All the contents stored at Database level must be converted, from their original charset to UTF-8. This conversion can be performed following different paths, depending of the type of site (mono or multilang), its original charset and the DB backend (MySQL or PostgreSQL).
  • Recoding PHP scripts: Moodle code itself needs to be modified to use new string manipulation functions and to work properly under an UTF-8 environment. A list of changes and their level of implementation. The Developer forum is, once again, a good place to discuss all this stuff.

Now, let's see the initial steps of the process.