Почему функция 'mb_convert_encoding' не преобразует обычную строку в PHP?

Почему простая строка не преобразуется в кодировку 'windows-1251' после использования функции `mb_convert_encoding`?
  • 18 июля 2024 г. 11:12
Ответы на вопрос 3
Функция `mb_convert_encoding` предназначена для работы с многобайтовыми строками, которые используются в некоторых кодировках, например, UTF-8. Обычные строки в PHP представляют собой однобайтовые строки и не требуют конвертации с использованием `mb_convert_encoding`.

Если вы хотите преобразовать обычную строку в кодировку 'windows-1251', вам следует использовать функции `iconv` или `mb_convert_encoding`, указав правильные входную и выходную кодировки, например:

```php
$string = 'Пример строки';
$newString = iconv('UTF-8', 'windows-1251', $string);
echo $newString;
```

Этот код сконвертирует строку из UTF-8 в кодировку 'windows-1251'. Таким образом, необходимо использовать соответствующие инструменты для работы с различными типами строк и кодировок в PHP.
по тому что <a href="https://www.php.net/manual/ru/function.mb-detect-encoding.php" rel="nofollow">документация</a> ?
<pre><code class="diff">- var_dump( $str );
+ echo bin2hex($str);</code></pre> Получаем <code>cf f0 e8 e2 e5 f2 20 32 30 31 39 20 cc e8 f0 21</code> <br/> Открываем таблицу cp1251 и смотрим <br/> cf - П, f0 - р, e8 - и, e2 - в, e5 - е, f2 - т, 20 - пробел, 32 - 2, 30 - 0, 31 - 1, 39 - 9, 20 - пробел, cc - М, e8 - и, f0 - р, 21 - ! <br/> <code>Привет 2019 Мир!</code> <br/> Всё вполне сконвертировалось.
Похожие вопросы