@@ -4,13 +4,148 @@ GH-9535 (mb_strcut(): The behavior of mb_strcut in mbstring has been changed in
4
4
mbstring
5
5
--FILE--
6
6
<?php
7
+ $ encodings = [
8
+ 'BASE64 ' ,
9
+ 'HTML-ENTITIES ' ,
10
+ 'Quoted-Printable ' ,
11
+ 'UTF-16 ' ,
12
+ 'UTF-16BE ' ,
13
+ 'UTF-16LE ' ,
14
+ 'UTF-7 ' ,
15
+ 'UTF7-IMAP ' ,
16
+ 'JIS ' ,
17
+ 'ISO-2022-JP ' ,
18
+ 'ISO-2022-JP-MS ' ,
19
+ 'GB18030 ' ,
20
+ 'HZ ' ,
21
+ 'ISO-2022-KR ' ,
22
+ 'ISO-2022-JP-2004 ' ,
23
+ 'ISO-2022-JP-MOBILE#KDDI ' ,
24
+ 'CP50220 ' ,
25
+ 'CP50221 ' ,
26
+ 'CP50222 ' ,
27
+ ];
28
+
29
+ $ input = '宛如繁星般宛如皎月般 ' ;
30
+ $ bytes_length = 15 ;
31
+ foreach ($ encodings as $ encoding ) {
32
+ $ converted_str = mb_convert_encoding ($ input , $ encoding , mb_internal_encoding ());
33
+ $ cut_str = mb_strcut ($ converted_str , 0 , $ bytes_length , $ encoding );
34
+ $ reconverted_str = mb_convert_encoding ($ cut_str , mb_internal_encoding (), $ encoding );
35
+ echo $ encoding .': ' .$ reconverted_str .PHP_EOL ;
36
+ }
37
+
38
+ echo PHP_EOL ;
39
+
40
+ $ input = '星のように月のように ' ;
41
+ $ bytes_length = 20 ;
42
+ foreach ($ encodings as $ encoding ) {
43
+ $ converted_str = mb_convert_encoding ($ input , $ encoding , mb_internal_encoding ());
44
+ $ cut_str = mb_strcut ($ converted_str , 0 , $ bytes_length , $ encoding );
45
+ $ reconverted_str = mb_convert_encoding ($ cut_str , mb_internal_encoding (), $ encoding );
46
+ echo $ encoding .': ' .$ reconverted_str .PHP_EOL ;
47
+ }
48
+
49
+ echo PHP_EOL ;
50
+
7
51
$ input = 'あaいb ' ;
8
52
$ bytes_length = 10 ;
9
- $ encoding = "ISO-2022-JP " ;
10
- $ converted_str = mb_convert_encoding ($ input , $ encoding , mb_internal_encoding ());
11
- $ cut_str = mb_strcut ($ converted_str , 0 , $ bytes_length , $ encoding );
12
- $ reconverted_str = mb_convert_encoding ($ cut_str , mb_internal_encoding (), $ encoding );
13
- var_dump ($ reconverted_str );
53
+ foreach ($ encodings as $ encoding ) {
54
+ $ converted_str = mb_convert_encoding ($ input , $ encoding , mb_internal_encoding ());
55
+ $ cut_str = mb_strcut ($ converted_str , 0 , $ bytes_length , $ encoding );
56
+ $ reconverted_str = mb_convert_encoding ($ cut_str , mb_internal_encoding (), $ encoding );
57
+ echo $ encoding .': ' .$ reconverted_str .PHP_EOL ;
58
+ }
59
+
60
+ echo PHP_EOL ;
61
+
62
+ $ input = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ' ;
63
+ $ bytes_length = 10 ;
64
+ foreach ($ encodings as $ encoding ) {
65
+ $ converted_str = mb_convert_encoding ($ input , $ encoding , mb_internal_encoding ());
66
+ $ cut_str = mb_strcut ($ converted_str , 0 , $ bytes_length , $ encoding );
67
+ $ reconverted_str = mb_convert_encoding ($ cut_str , mb_internal_encoding (), $ encoding );
68
+ echo $ encoding .': ' .$ reconverted_str .PHP_EOL ;
69
+ }
70
+
14
71
?>
15
- --EXPECT--
16
- string(4) "あa"
72
+ --EXPECTF--
73
+ BASE64: 宛如繁
74
+ HTML-ENTITIES: 宛如
75
+ Quoted-Printable: %s
76
+ UTF-16: 宛如繁星般宛如
77
+ UTF-16BE: 宛如繁星般宛如
78
+ UTF-16LE: 宛如繁星般宛如
79
+ UTF-7: 宛如繁星
80
+ UTF7-IMAP: 宛如繁星
81
+ JIS: 宛如繁星般
82
+ ISO-2022-JP: 宛如繁星般
83
+ ISO-2022-JP-MS: 宛如繁星
84
+ GB18030: 宛如繁星般宛如
85
+ HZ: 宛如繁星般
86
+ ISO-2022-KR: 宛如繁星
87
+ ISO-2022-JP-2004: 宛如繁星
88
+ ISO-2022-JP-MOBILE#KDDI: 宛如繁星
89
+ CP50220: 宛如繁星
90
+ CP50221: 宛如繁星
91
+ CP50222: 宛如繁星
92
+
93
+ BASE64: 星のように
94
+ HTML-ENTITIES: 星の
95
+ Quoted-Printable: 星の
96
+ UTF-16: 星のように月のように
97
+ UTF-16BE: 星のように月のように
98
+ UTF-16LE: 星のように月のように
99
+ UTF-7: 星のように月
100
+ UTF7-IMAP: 星のように月
101
+ JIS: 星のように月の
102
+ ISO-2022-JP: 星のように月の
103
+ ISO-2022-JP-MS: 星のように月の
104
+ GB18030: 星のように月のように
105
+ HZ: 星のように月のよ
106
+ ISO-2022-KR: 星のように月の
107
+ ISO-2022-JP-2004: 星のように月の
108
+ ISO-2022-JP-MOBILE#KDDI: 星のように月の
109
+ CP50220: 星のように月の
110
+ CP50221: 星のように月の
111
+ CP50222: 星のように月の
112
+
113
+ BASE64: %s
114
+ HTML-ENTITIES: あa&
115
+ Quoted-Printable: あa
116
+ UTF-16: あaいb
117
+ UTF-16BE: あaいb
118
+ UTF-16LE: あaいb
119
+ UTF-7: あa
120
+ UTF7-IMAP: あa
121
+ JIS: あa
122
+ ISO-2022-JP: あa
123
+ ISO-2022-JP-MS: あa
124
+ GB18030: あaいb
125
+ HZ: あa
126
+ ISO-2022-KR: あa
127
+ ISO-2022-JP-2004: あa
128
+ ISO-2022-JP-MOBILE#KDDI: あa
129
+ CP50220: あa
130
+ CP50221: あa
131
+ CP50222: あa
132
+
133
+ BASE64: AAAAAA
134
+ HTML-ENTITIES: AAAAAAAAAA
135
+ Quoted-Printable: AAAAAAAAAA
136
+ UTF-16: AAAAA
137
+ UTF-16BE: AAAAA
138
+ UTF-16LE: AAAAA
139
+ UTF-7: AAAAAAAAAA
140
+ UTF7-IMAP: AAAAAAAAAA
141
+ JIS: AAAAAAAAAA
142
+ ISO-2022-JP: AAAAAAAAAA
143
+ ISO-2022-JP-MS: AAAAAAAAAA
144
+ GB18030: AAAAAAAAAA
145
+ HZ: AAAAAAAAAA
146
+ ISO-2022-KR: AAAAAAAAAA
147
+ ISO-2022-JP-2004: AAAAAAAAAA
148
+ ISO-2022-JP-MOBILE#KDDI: AAAAAAAAAA
149
+ CP50220: AAAAAAAAAA
150
+ CP50221: AAAAAAAAAA
151
+ CP50222: AAAAAAAAAA
0 commit comments