Merge branch 'w50_MDL-36245_m24_convert' of git://github.com/skodak/moodle into MOODLE_24_STABLE
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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 === '') {
|
||||
|
||||
Reference in New Issue
Block a user