Merge branch 'w50_MDL-36245_m24_convert' of git://github.com/skodak/moodle into MOODLE_24_STABLE

This commit is contained in:
Eloy Lafuente (stronk7)
2012-12-18 23:42:53 +01:00
2 changed files with 11 additions and 2 deletions
+6
View File
@@ -62,29 +62,35 @@ class core_textlib_testcase extends advanced_testcase {
$this->assertSame(textlib::convert($iso2, 'iso-8859-2', 'win-1250'), $win);
$this->assertSame(textlib::convert($iso2, 'iso-8859-2', 'iso-8859-2'), $iso2);
$this->assertSame(textlib::convert($win, 'win-1250', 'cp1250'), $win);
$this->assertSame(textlib::convert($utf8, 'utf-8', 'utf-8'), $utf8);
$utf8 = '言語設定';
$str = pack("H*", "b8c0b8ecc0dfc4ea"); //EUC-JP
$this->assertSame(textlib::convert($utf8, 'utf-8', 'EUC-JP'), $str);
$this->assertSame(textlib::convert($str, 'EUC-JP', 'utf-8'), $utf8);
$this->assertSame(textlib::convert($utf8, 'utf-8', 'utf-8'), $utf8);
$str = pack("H*", "1b24423840386c405f446a1b2842"); //ISO-2022-JP
$this->assertSame(textlib::convert($utf8, 'utf-8', 'ISO-2022-JP'), $str);
$this->assertSame(textlib::convert($str, 'ISO-2022-JP', 'utf-8'), $utf8);
$this->assertSame(textlib::convert($utf8, 'utf-8', 'utf-8'), $utf8);
$str = pack("H*", "8cbe8cea90dd92e8"); //SHIFT-JIS
$this->assertSame(textlib::convert($utf8, 'utf-8', 'SHIFT-JIS'), $str);
$this->assertSame(textlib::convert($str, 'SHIFT-JIS', 'utf-8'), $utf8);
$this->assertSame(textlib::convert($utf8, 'utf-8', 'utf-8'), $utf8);
$utf8 = '简体中文';
$str = pack("H*", "bcf2cce5d6d0cec4"); //GB2312
$this->assertSame(textlib::convert($utf8, 'utf-8', 'GB2312'), $str);
$this->assertSame(textlib::convert($str, 'GB2312', 'utf-8'), $utf8);
$this->assertSame(textlib::convert($utf8, 'utf-8', 'utf-8'), $utf8);
$str = pack("H*", "bcf2cce5d6d0cec4"); //GB18030
$this->assertSame(textlib::convert($utf8, 'utf-8', 'GB18030'), $str);
$this->assertSame(textlib::convert($str, 'GB18030', 'utf-8'), $utf8);
$this->assertSame(textlib::convert($utf8, 'utf-8', 'utf-8'), $utf8);
}
/**
+5 -2
View File
@@ -161,8 +161,7 @@ class textlib {
/**
* Converts the text between different encodings. It uses iconv extension with //TRANSLIT parameter,
* falls back to typo3.
* Returns false if fails.
* falls back to typo3. If both source and target are utf-8 it tries to fix invalid characters only.
*
* @param string $text
* @param string $fromCS source encoding
@@ -179,6 +178,10 @@ class textlib {
return '';
}
if ($toCS === 'utf-8' and $fromCS === 'utf-8') {
return fix_utf8($text);
}
$result = iconv($fromCS, $toCS.'//TRANSLIT', $text);
if ($result === false or $result === '') {