芝麻web文件管理V1.00
编辑当前文件:/home/strato/chroot/opt/RZphp80/includes/test/XML_Parser/tests/005.phpt
--TEST-- XML Parser: mixing character encodings --SKIPIF-- --FILE-- ISO-8859-1 * 2 UTF-8 -> US-ASCII * 3 ISO-8859-1 -> UTF-8 * 4 ISO-8859-1 -> US-ASCII * 5 US-ASCII -> UTF-8 * 6 US-ASCII -> ISO-8859-1 */ require_once 'XML/Parser.php'; class TestEncodings1 extends XML_Parser { var $output = ''; function startHandler($xp, $elem, $attribs) { $this->output .= "<$elem>"; } function endHandler($xp, $elem) { $this->output .= "$elem>"; } function cdataHandler($xp, $data) { $this->output .= $data; } function test($data) { $result = $this->parseString($data, true); if (PEAR::isError($result)) { return $result; } } } $xml = ""; $input = array( "UTF-8" => "
abcæøå
", /* are these special chars allowed in ISO-8859-1 context??? */ "ISO-8859-1" => "
abc���
", // "ISO-8859-1" => "
abc�
", "US-ASCII" => "
abcaoa
" ); $encodings = array_keys($input); foreach ($input as $srcenc => $string) { foreach ($encodings as $tgtenc) { if ($srcenc == $tgtenc) { continue; } print "Testing $srcenc -> $tgtenc: "; $p = new TestEncodings1($tgtenc, 'event', $srcenc); $e = $p->test($input[$srcenc]); if (PEAR::isError($e)) { printf("OOPS: %s\n", $e->getMessage()); } else { var_dump($p->output); } } } ?> --EXPECT-- Testing UTF-8 -> ISO-8859-1: string(13) "
abc���
" Testing UTF-8 -> US-ASCII: string(13) "
abc???
" Testing ISO-8859-1 -> UTF-8: string(16) "
abcæøå
" Testing ISO-8859-1 -> US-ASCII: string(13) "
abc???
" Testing US-ASCII -> UTF-8: string(13) "
abcaoa
" Testing US-ASCII -> ISO-8859-1: string(13) "
abcaoa
"