| @@ 1161-1172 (lines=12) @@ | ||
| 1158 | * |
|
| 1159 | * @return string |
|
| 1160 | */ |
|
| 1161 | public static function iconv_fallback_utf16be_utf8($string) { |
|
| 1162 | if (substr($string, 0, 2) == "\xFE\xFF") { |
|
| 1163 | // strip BOM |
|
| 1164 | $string = substr($string, 2); |
|
| 1165 | } |
|
| 1166 | $newcharstring = ''; |
|
| 1167 | for ($i = 0; $i < strlen($string); $i += 2) { |
|
| 1168 | $charval = self::BigEndian2Int(substr($string, $i, 2)); |
|
| 1169 | $newcharstring .= self::iconv_fallback_int_utf8($charval); |
|
| 1170 | } |
|
| 1171 | return $newcharstring; |
|
| 1172 | } |
|
| 1173 | ||
| 1174 | /** |
|
| 1175 | * UTF-16LE => UTF-8 |
|
| @@ 1181-1192 (lines=12) @@ | ||
| 1178 | * |
|
| 1179 | * @return string |
|
| 1180 | */ |
|
| 1181 | public static function iconv_fallback_utf16le_utf8($string) { |
|
| 1182 | if (substr($string, 0, 2) == "\xFF\xFE") { |
|
| 1183 | // strip BOM |
|
| 1184 | $string = substr($string, 2); |
|
| 1185 | } |
|
| 1186 | $newcharstring = ''; |
|
| 1187 | for ($i = 0; $i < strlen($string); $i += 2) { |
|
| 1188 | $charval = self::LittleEndian2Int(substr($string, $i, 2)); |
|
| 1189 | $newcharstring .= self::iconv_fallback_int_utf8($charval); |
|
| 1190 | } |
|
| 1191 | return $newcharstring; |
|
| 1192 | } |
|
| 1193 | ||
| 1194 | /** |
|
| 1195 | * UTF-16BE => ISO-8859-1 |
|
| @@ 1201-1212 (lines=12) @@ | ||
| 1198 | * |
|
| 1199 | * @return string |
|
| 1200 | */ |
|
| 1201 | public static function iconv_fallback_utf16be_iso88591($string) { |
|
| 1202 | if (substr($string, 0, 2) == "\xFE\xFF") { |
|
| 1203 | // strip BOM |
|
| 1204 | $string = substr($string, 2); |
|
| 1205 | } |
|
| 1206 | $newcharstring = ''; |
|
| 1207 | for ($i = 0; $i < strlen($string); $i += 2) { |
|
| 1208 | $charval = self::BigEndian2Int(substr($string, $i, 2)); |
|
| 1209 | $newcharstring .= (($charval < 256) ? chr($charval) : '?'); |
|
| 1210 | } |
|
| 1211 | return $newcharstring; |
|
| 1212 | } |
|
| 1213 | ||
| 1214 | /** |
|
| 1215 | * UTF-16LE => ISO-8859-1 |
|
| @@ 1221-1232 (lines=12) @@ | ||
| 1218 | * |
|
| 1219 | * @return string |
|
| 1220 | */ |
|
| 1221 | public static function iconv_fallback_utf16le_iso88591($string) { |
|
| 1222 | if (substr($string, 0, 2) == "\xFF\xFE") { |
|
| 1223 | // strip BOM |
|
| 1224 | $string = substr($string, 2); |
|
| 1225 | } |
|
| 1226 | $newcharstring = ''; |
|
| 1227 | for ($i = 0; $i < strlen($string); $i += 2) { |
|
| 1228 | $charval = self::LittleEndian2Int(substr($string, $i, 2)); |
|
| 1229 | $newcharstring .= (($charval < 256) ? chr($charval) : '?'); |
|
| 1230 | } |
|
| 1231 | return $newcharstring; |
|
| 1232 | } |
|
| 1233 | ||
| 1234 | /** |
|
| 1235 | * UTF-16 (BOM) => ISO-8859-1 |
|