|
|
|
File Attachments:
|
1.
test.php (2 kB)
|
|
Environment:
|
PHP5, tidy filter running
|
|
| Database: |
Any
|
| Participants: |
Eloy Lafuente (stronk7) and Nicolas Connault
|
| Security Level: |
None
|
| Resolved date: |
03/Apr/07
|
| Affected Branches: |
MOODLE_16_STABLE, MOODLE_17_STABLE, MOODLE_18_STABLE
|
| Fixed Branches: |
MOODLE_16_STABLE, MOODLE_17_STABLE, MOODLE_18_STABLE
|
|
After getting crazy last days with one Spanish moodler about how his site was showing accents and other chars (only in some places, apparently in a random fashion) I discovered that it had the tidy filter enabled and running.
So, one simple string like this:
'áéíóú'
after being processed by format_text() is showed in browser like:
áéíóúñÑ
(enclosed by html <p> tags in source code)
It seems that tidy breaks things sometimes... :-(
To reproduce:
1) Enable tidy filter (ensure you've installed the PHP5 tidy extension (tidy_repair_string).
2) Copy the attached test.php to your moodle dirrot.
3) Invoke it from the browser.
|
|
Description
|
After getting crazy last days with one Spanish moodler about how his site was showing accents and other chars (only in some places, apparently in a random fashion) I discovered that it had the tidy filter enabled and running.
So, one simple string like this:
'áéíóú'
after being processed by format_text() is showed in browser like:
áéíóúñÑ
(enclosed by html <p> tags in source code)
It seems that tidy breaks things sometimes... :-(
To reproduce:
1) Enable tidy filter (ensure you've installed the PHP5 tidy extension (tidy_repair_string).
2) Copy the attached test.php to your moodle dirrot.
3) Invoke it from the browser. |
Show » |
|
it seems that, by default the tidy_repair_string() function works with ascii (or iso-8859-1). But it has one third parameter that allows to specify the desired encoding.
Just change the function call from:
$text = tidy_repair_string($text, $tidyoptions);
to
$text = tidy_repair_string($text, $tidyoptions,'utf8');
And everything should work perfectly.
Note that, under 1.6 & 1.7 we need to ask for $CFG->unicodedb before setting than parameter, while under 1.8 and HEAD we can apply it directly.
Ciao