123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- --TEST--
- mb_convert_encoding()
- --EXTENSIONS--
- mbstring
- --INI--
- output_handler=
- mbstring.language=Japanese
- --FILE--
- <?php
- // TODO: Add more tests
- $sjis = base64_decode('k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==');
- $jis = base64_decode('GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==');
- $euc_jp = "\xC6\xFC\xCB\xDC\xB8\xEC\xA5\xC6\xA5\xAD\xA5\xB9\xA5\xC8\xA4\xC7\xA4\xB9\xA1\xA301234\xA3\xB5\xA3\xB6\xA3\xB7\xA3\xB8\xA3\xB9\xA1\xA3";
- // Test with single "form encoding"
- echo "== BASIC TEST ==\n";
- $s = bin2hex(mb_convert_encoding($sjis, 'EUC-JP', 'SJIS'));
- print("EUC-JP: $s\n"); // EUC-JP
- $s = bin2hex(mb_convert_encoding($jis, 'EUC-JP', 'JIS'));
- print("EUC-JP: $s\n"); // EUC-JP
- $s = mb_convert_encoding($euc_jp, 'SJIS', 'EUC-JP');
- print("SJIS: ".base64_encode($s)."\n"); // SJIS
- $s = mb_convert_encoding($euc_jp, 'JIS', 'EUC-JP');
- print("JIS: ".base64_encode($s)."\n"); // JIS
- // Using Encoding List Array
- echo "== STRING ENCODING LIST ==\n";
- $a = 'JIS,UTF-8,EUC-JP,SJIS';
- $s = $jis;
- $s = bin2hex(mb_convert_encoding($s, 'EUC-JP', $a));
- print("EUC-JP: $s\n"); // EUC-JP
- $s = $euc_jp;
- $s = mb_convert_encoding($s, 'SJIS', $a);
- print("SJIS: ".base64_encode($s)."\n"); // SJIS
- $s = $euc_jp;
- $s = mb_convert_encoding($s, 'JIS', $a);
- print("JIS: ".base64_encode($s)."\n"); // JIS
- // Using Encoding List Array
- echo "== ARRAY ENCODING LIST ==\n";
- $a = ['JIS', 'UTF-8', 'EUC-JP', 'SJIS'];
- $s = $jis;
- $s = bin2hex(mb_convert_encoding($s, 'EUC-JP', $a));
- print("EUC-JP: $s\n"); // EUC-JP
- $s = $euc_jp;
- $s = mb_convert_encoding($s, 'SJIS', $a);
- print("SJIS: ".base64_encode($s)."\n"); // SJIS
- $s = $euc_jp;
- $s = mb_convert_encoding($s, 'JIS', $a);
- print("JIS: ".base64_encode($s)."\n"); // JIS
- // Regression test for bug #81676
- echo "UTF-8: " . mb_convert_encoding('test', 'UTF-8', mb_list_encodings()), "\n";
- // Using Detect Order
- echo "== DETECT ORDER ==\n";
- $s = $jis;
- $s = bin2hex(mb_convert_encoding($s, 'EUC-JP', 'auto'));
- print("EUC-JP: $s\n"); // EUC-JP
- $s = $euc_jp;
- $s = mb_convert_encoding($s, 'SJIS', 'auto');
- print("SJIS: ".base64_encode($s)."\n"); // SJIS
- $s = $euc_jp;
- $s = mb_convert_encoding($s, 'JIS', 'auto');
- print("JIS: ".base64_encode($s)."\n"); // JIS
- // Invalid Parameters
- echo "== INVALID PARAMETER ==\n";
- $s = mb_convert_encoding(1234, 'EUC-JP');
- print("INT: $s\n");
- $s = mb_convert_encoding('', 'EUC-JP');
- print("EUC-JP: $s\n"); // SJIS
- $s = $euc_jp;
- try {
- var_dump(mb_convert_encoding($s, 'BAD'));
- } catch (\ValueError $e) {
- echo $e->getMessage() . \PHP_EOL;
- }
- ?>
- --EXPECT--
- == BASIC TEST ==
- EUC-JP: c6fccbdcb8eca5c6a5ada5b9a5c8a4c7a4b9a1a33031323334a3b5a3b6a3b7a3b8a3b9a1a3
- EUC-JP: c6fccbdcb8eca5c6a5ada5b9a5c8a4c7a4b9a1a33031323334a3b5a3b6a3b7a3b8a3b9a1a3
- SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==
- JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==
- == STRING ENCODING LIST ==
- EUC-JP: c6fccbdcb8eca5c6a5ada5b9a5c8a4c7a4b9a1a33031323334a3b5a3b6a3b7a3b8a3b9a1a3
- SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==
- JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==
- == ARRAY ENCODING LIST ==
- EUC-JP: c6fccbdcb8eca5c6a5ada5b9a5c8a4c7a4b9a1a33031323334a3b5a3b6a3b7a3b8a3b9a1a3
- SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==
- JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==
- UTF-8: test
- == DETECT ORDER ==
- EUC-JP: c6fccbdcb8eca5c6a5ada5b9a5c8a4c7a4b9a1a33031323334a3b5a3b6a3b7a3b8a3b9a1a3
- SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==
- JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==
- == INVALID PARAMETER ==
- INT: 1234
- EUC-JP:
- mb_convert_encoding(): Argument #2 ($to_encoding) must be a valid encoding, "BAD" given
|