1--TEST-- 2mb_convert_encoding() 3--SKIPIF-- 4<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?> 5--INI-- 6output_handler= 7mbstring.language=Japanese 8--FILE-- 9<?php 10// TODO: Add more tests 11 12// SJIS string (BASE64 encoded) 13$sjis = base64_decode('k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg=='); 14// JIS string (BASE64 encoded) 15$jis = base64_decode('GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg=='); 16// EUC-JP string 17$euc_jp = '���ܸ�ƥ����ȤǤ���01234������������'; 18 19// Test with sigle "form encoding" 20// Note: For some reason it complains, results are differ. Not reserched. 21echo "== BASIC TEST ==\n"; 22$s = $sjis; 23$s = mb_convert_encoding($s, 'EUC-JP', 'SJIS'); 24print("EUC-JP: $s\n"); // EUC-JP 25 26$s = $jis; 27$s = mb_convert_encoding($s, 'EUC-JP', 'JIS'); 28print("EUC-JP: $s\n"); // EUC-JP 29 30$s = $euc_jp; 31$s = mb_convert_encoding($s, 'SJIS', 'EUC-JP'); 32print("SJIS: ".base64_encode($s)."\n"); // SJIS 33 34$s = $euc_jp; 35$s = mb_convert_encoding($s, 'JIS', 'EUC-JP'); 36print("JIS: ".base64_encode($s)."\n"); // JIS 37 38 39// Using Encoding List Array 40echo "== STRING ENCODING LIST ==\n"; 41 42$a = 'JIS,UTF-8,EUC-JP,SJIS'; 43$s = $jis; 44$s = mb_convert_encoding($s, 'EUC-JP', $a); 45print("EUC-JP: $s\n"); // EUC-JP 46 47$s = $euc_jp; 48$s = mb_convert_encoding($s, 'SJIS', $a); 49print("SJIS: ".base64_encode($s)."\n"); // SJIS 50 51$s = $euc_jp; 52$s = mb_convert_encoding($s, 'JIS', $a); 53print("JIS: ".base64_encode($s)."\n"); // JIS 54 55 56// Using Encoding List Array 57echo "== ARRAY ENCODING LIST ==\n"; 58 59$a = array(0=>'JIS', 1=>'UTF-8', 2=>'EUC-JP', 3=>'SJIS'); 60$s = $jis; 61$s = mb_convert_encoding($s, 'EUC-JP', $a); 62print("EUC-JP: $s\n"); // EUC-JP 63 64$s = $euc_jp; 65$s = mb_convert_encoding($s, 'SJIS', $a); 66print("SJIS: ".base64_encode($s)."\n"); // SJIS 67 68$s = $euc_jp; 69$s = mb_convert_encoding($s, 'JIS', $a); 70print("JIS: ".base64_encode($s)."\n"); // JIS 71 72 73// Using Detect Order 74echo "== DETECT ORDER ==\n"; 75 76$s = $jis; 77$s = mb_convert_encoding($s, 'EUC-JP', 'auto'); 78print("EUC-JP: $s\n"); // EUC-JP 79 80$s = $euc_jp; 81$s = mb_convert_encoding($s, 'SJIS', 'auto'); 82print("SJIS: ".base64_encode($s)."\n"); // SJIS 83 84$s = $euc_jp; 85$s = mb_convert_encoding($s, 'JIS', 'auto'); 86print("JIS: ".base64_encode($s)."\n"); // JIS 87 88 89// Invalid(?) Parameters 90echo "== INVALID PARAMETER ==\n"; 91 92$s = mb_convert_encoding(1234, 'EUC-JP'); 93print("INT: $s\n"); // EUC-JP 94 95$s = mb_convert_encoding('', 'EUC-JP'); 96print("EUC-JP: $s\n"); // SJIS 97 98$s = $euc_jp; 99$s = mb_convert_encoding($s, 'BAD'); 100print("BAD: $s\n"); // BAD 101 102$s = $euc_jp; 103$s = mb_convert_encoding($s); 104print("MP: $s\n"); // Missing parameter 105 106 107?> 108--EXPECTF-- 109== BASIC TEST == 110EUC-JP: ���ܸ�ƥ����ȤǤ���01234������������ 111EUC-JP: ���ܸ�ƥ����ȤǤ���01234������������ 112SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== 113JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== 114== STRING ENCODING LIST == 115EUC-JP: ���ܸ�ƥ����ȤǤ���01234������������ 116SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== 117JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== 118== ARRAY ENCODING LIST == 119EUC-JP: ���ܸ�ƥ����ȤǤ���01234������������ 120SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== 121JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== 122== DETECT ORDER == 123EUC-JP: ���ܸ�ƥ����ȤǤ���01234������������ 124SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== 125JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== 126== INVALID PARAMETER == 127INT: 1234 128EUC-JP: 129 130Warning: mb_convert_encoding(): Unknown encoding "BAD" in %s on line %d 131BAD: 132 133Warning: mb_convert_encoding() expects at least 2 parameters, 1 given in %s on line %d 134MP: 135