xref: /PHP-8.0/ext/mbstring/tests/bug47399.phpt (revision 99497dea)
1--TEST--
2Bug #47399 (mb_check_encoding() returns true for some illegal SJIS characters)
3--SKIPIF--
4<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
5--FILE--
6<?php
7foreach (array("Shift_JIS", "CP932") as $enc) {
8    for ($a = 0; $a < 256; $a++) {
9        var_dump(mb_check_encoding("\x81".pack("c", $a), $enc));
10    }
11}
12?>
13--EXPECT--
14bool(false)
15bool(false)
16bool(false)
17bool(false)
18bool(false)
19bool(false)
20bool(false)
21bool(false)
22bool(false)
23bool(false)
24bool(false)
25bool(false)
26bool(false)
27bool(false)
28bool(false)
29bool(false)
30bool(false)
31bool(false)
32bool(false)
33bool(false)
34bool(false)
35bool(false)
36bool(false)
37bool(false)
38bool(false)
39bool(false)
40bool(false)
41bool(false)
42bool(false)
43bool(false)
44bool(false)
45bool(false)
46bool(false)
47bool(false)
48bool(false)
49bool(false)
50bool(false)
51bool(false)
52bool(false)
53bool(false)
54bool(false)
55bool(false)
56bool(false)
57bool(false)
58bool(false)
59bool(false)
60bool(false)
61bool(false)
62bool(false)
63bool(false)
64bool(false)
65bool(false)
66bool(false)
67bool(false)
68bool(false)
69bool(false)
70bool(false)
71bool(false)
72bool(false)
73bool(false)
74bool(false)
75bool(false)
76bool(false)
77bool(false)
78bool(true)
79bool(true)
80bool(true)
81bool(true)
82bool(true)
83bool(true)
84bool(true)
85bool(true)
86bool(true)
87bool(true)
88bool(true)
89bool(true)
90bool(true)
91bool(true)
92bool(true)
93bool(true)
94bool(true)
95bool(true)
96bool(true)
97bool(true)
98bool(true)
99bool(true)
100bool(true)
101bool(true)
102bool(true)
103bool(true)
104bool(true)
105bool(true)
106bool(true)
107bool(true)
108bool(true)
109bool(true)
110bool(true)
111bool(true)
112bool(true)
113bool(true)
114bool(true)
115bool(true)
116bool(true)
117bool(true)
118bool(true)
119bool(true)
120bool(true)
121bool(true)
122bool(true)
123bool(true)
124bool(true)
125bool(true)
126bool(true)
127bool(true)
128bool(true)
129bool(true)
130bool(true)
131bool(true)
132bool(true)
133bool(true)
134bool(true)
135bool(true)
136bool(true)
137bool(true)
138bool(true)
139bool(true)
140bool(true)
141bool(false)
142bool(true)
143bool(true)
144bool(true)
145bool(true)
146bool(true)
147bool(true)
148bool(true)
149bool(true)
150bool(true)
151bool(true)
152bool(true)
153bool(true)
154bool(true)
155bool(true)
156bool(true)
157bool(true)
158bool(true)
159bool(true)
160bool(true)
161bool(true)
162bool(true)
163bool(true)
164bool(true)
165bool(true)
166bool(true)
167bool(true)
168bool(true)
169bool(true)
170bool(true)
171bool(true)
172bool(true)
173bool(true)
174bool(true)
175bool(true)
176bool(true)
177bool(true)
178bool(true)
179bool(true)
180bool(true)
181bool(true)
182bool(true)
183bool(true)
184bool(true)
185bool(true)
186bool(true)
187bool(true)
188bool(true)
189bool(true)
190bool(true)
191bool(true)
192bool(true)
193bool(true)
194bool(true)
195bool(true)
196bool(true)
197bool(true)
198bool(true)
199bool(true)
200bool(true)
201bool(true)
202bool(true)
203bool(true)
204bool(true)
205bool(true)
206bool(true)
207bool(true)
208bool(true)
209bool(true)
210bool(true)
211bool(true)
212bool(true)
213bool(true)
214bool(true)
215bool(true)
216bool(true)
217bool(true)
218bool(true)
219bool(true)
220bool(true)
221bool(true)
222bool(true)
223bool(true)
224bool(true)
225bool(true)
226bool(true)
227bool(true)
228bool(true)
229bool(true)
230bool(true)
231bool(true)
232bool(true)
233bool(true)
234bool(true)
235bool(true)
236bool(true)
237bool(true)
238bool(true)
239bool(true)
240bool(true)
241bool(true)
242bool(true)
243bool(true)
244bool(true)
245bool(true)
246bool(true)
247bool(true)
248bool(true)
249bool(true)
250bool(true)
251bool(true)
252bool(true)
253bool(true)
254bool(true)
255bool(true)
256bool(true)
257bool(true)
258bool(true)
259bool(true)
260bool(true)
261bool(true)
262bool(true)
263bool(true)
264bool(true)
265bool(true)
266bool(true)
267bool(false)
268bool(false)
269bool(false)
270bool(false)
271bool(false)
272bool(false)
273bool(false)
274bool(false)
275bool(false)
276bool(false)
277bool(false)
278bool(false)
279bool(false)
280bool(false)
281bool(false)
282bool(false)
283bool(false)
284bool(false)
285bool(false)
286bool(false)
287bool(false)
288bool(false)
289bool(false)
290bool(false)
291bool(false)
292bool(false)
293bool(false)
294bool(false)
295bool(false)
296bool(false)
297bool(false)
298bool(false)
299bool(false)
300bool(false)
301bool(false)
302bool(false)
303bool(false)
304bool(false)
305bool(false)
306bool(false)
307bool(false)
308bool(false)
309bool(false)
310bool(false)
311bool(false)
312bool(false)
313bool(false)
314bool(false)
315bool(false)
316bool(false)
317bool(false)
318bool(false)
319bool(false)
320bool(false)
321bool(false)
322bool(false)
323bool(false)
324bool(false)
325bool(false)
326bool(false)
327bool(false)
328bool(false)
329bool(false)
330bool(false)
331bool(false)
332bool(false)
333bool(false)
334bool(true)
335bool(true)
336bool(true)
337bool(true)
338bool(true)
339bool(true)
340bool(true)
341bool(true)
342bool(true)
343bool(true)
344bool(true)
345bool(true)
346bool(true)
347bool(true)
348bool(true)
349bool(true)
350bool(true)
351bool(true)
352bool(true)
353bool(true)
354bool(true)
355bool(true)
356bool(true)
357bool(true)
358bool(true)
359bool(true)
360bool(true)
361bool(true)
362bool(true)
363bool(true)
364bool(true)
365bool(true)
366bool(true)
367bool(true)
368bool(true)
369bool(true)
370bool(true)
371bool(true)
372bool(true)
373bool(true)
374bool(true)
375bool(true)
376bool(true)
377bool(true)
378bool(true)
379bool(true)
380bool(true)
381bool(true)
382bool(true)
383bool(true)
384bool(true)
385bool(true)
386bool(true)
387bool(true)
388bool(true)
389bool(true)
390bool(true)
391bool(true)
392bool(true)
393bool(true)
394bool(true)
395bool(true)
396bool(true)
397bool(false)
398bool(true)
399bool(true)
400bool(true)
401bool(true)
402bool(true)
403bool(true)
404bool(true)
405bool(true)
406bool(true)
407bool(true)
408bool(true)
409bool(true)
410bool(true)
411bool(true)
412bool(true)
413bool(true)
414bool(true)
415bool(true)
416bool(true)
417bool(true)
418bool(true)
419bool(true)
420bool(true)
421bool(true)
422bool(true)
423bool(true)
424bool(true)
425bool(true)
426bool(true)
427bool(true)
428bool(true)
429bool(true)
430bool(true)
431bool(true)
432bool(true)
433bool(true)
434bool(true)
435bool(true)
436bool(true)
437bool(true)
438bool(true)
439bool(true)
440bool(true)
441bool(true)
442bool(true)
443bool(true)
444bool(true)
445bool(true)
446bool(true)
447bool(true)
448bool(true)
449bool(true)
450bool(true)
451bool(true)
452bool(true)
453bool(true)
454bool(true)
455bool(true)
456bool(true)
457bool(true)
458bool(true)
459bool(true)
460bool(true)
461bool(true)
462bool(true)
463bool(true)
464bool(true)
465bool(true)
466bool(true)
467bool(true)
468bool(true)
469bool(true)
470bool(true)
471bool(true)
472bool(true)
473bool(true)
474bool(true)
475bool(true)
476bool(true)
477bool(true)
478bool(true)
479bool(true)
480bool(true)
481bool(true)
482bool(true)
483bool(true)
484bool(true)
485bool(true)
486bool(true)
487bool(true)
488bool(true)
489bool(true)
490bool(true)
491bool(true)
492bool(true)
493bool(true)
494bool(true)
495bool(true)
496bool(true)
497bool(true)
498bool(true)
499bool(true)
500bool(true)
501bool(true)
502bool(true)
503bool(true)
504bool(true)
505bool(true)
506bool(true)
507bool(true)
508bool(true)
509bool(true)
510bool(true)
511bool(true)
512bool(true)
513bool(true)
514bool(true)
515bool(true)
516bool(true)
517bool(true)
518bool(true)
519bool(true)
520bool(true)
521bool(true)
522bool(true)
523bool(false)
524bool(false)
525bool(false)
526