Содержание
(PHP 4, PHP 5, PHP 7)
utf8_encode — Кодирует строку ISO-8859-1 в кодировке UTF-8
Описание
Эта функция кодирует строку data кодировкой UTF-8, и возвращает закодированный вариант. UTF-8 — стандартный механизм, используемый в Unicode для кодирования wide character значений в поток байтов. UTF-8 не оказывает влияния на незашифрованные ASCII символы, он самосинхронизирующийся (это значит, что программно можно вычислить, где в потоке байт начинаются символы) и может использоваться функциями сравнения строк для сортировки и подобных задач. PHP кодирует UTF-8 символы в 4 байта, как показано ниже:
байты | биты | представление |
---|---|---|
1 | 7 | 0bbbbbbb |
2 | 11 | 110bbbbb 10bbbbbb |
3 | 16 | 1110bbbb 10bbbbbb 10bbbbbb |
4 | 21 | 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb |
Каждая b представляет бит, который может быть использован для хранения данных символа.
Список параметров
Возвращаемые значения
Возвращает UTF-8 перевод данных data .
Смотрите также
- utf8_decode() — Преобразует строку с ISO-8859-1 символами кодированную в UTF-8 в однобайтную ISO-8859-1
некоторые из моих скриптов используют другую кодировку, и когда я пытаюсь их объединить, это становится проблемой.
но я не могу изменить кодировку, которую они используют, вместо этого я хочу изменить кодировку результата из скрипта A и использовать его в качестве параметра в скрипте B.
Итак: есть ли простой способ изменить строку с UTF-8 на ISO-88591 в PHP? Я просмотрел utf_encode и _decode, но они не делают то, что я хочу. Почему не действует любой "utf2iso ()" — функция или аналогичная?
Я не думаю, что у меня есть символы, которые не могут быть написаны в ISO-формате, так что это не должно быть огромной проблемой.
10 ответов
посмотреть iconv() или mb_convert_encoding() . Кстати, почему бы и нет?—13—> utf8_encode() и utf8_decode() работа для вас?
utf8_decode — преобразует строку с Стандарт ISO-8859-1 символы, закодированные с UTF-8 для однобайтового ISO-8859-1
utf8_encode — кодирует ISO-8859-1 строка в UTF-8
так по существу
все должны делать то же самое — с utf8_en/decode() не требует специального расширения, mb_convert_encoding() требуется ext / mbstring и iconv() требуется ext / iconv.
прежде всего, не используйте разные кодировки. Это приводит к беспорядку, и UTF-8, безусловно, тот, который вы должны использовать везде.
скорее всего, ваш вход не ISO-8859-1, а что-то еще (ISO-8859-15, Windows-1252). Чтобы конвертировать из них, используйте iconv или mb_convert_encoding .
тем не менее utf8_encode и utf8_decode должно работать для ISO-8859-1. Было бы здорово, если бы вы могли опубликовать ссылку на файл или uuencoded или в base64 пример строки, для которой преобразование завершается неудачей или дает неожиданные результаты.
установите метатег в head как
используйте ссылку http://www.i18nqa.com/debug/utf8-debug.html заменить символ символов, который вы хотите.
затем использовать как str_replace как
Это метод, который я использую и помогаю много. Спасибо!
вам нужно использовать iconv пакет, в частности его функция iconv.
Some of my script are using different encoding, and when I try to combine them, this has becom an issue.
But I can’t change the encoding they use, instead I want to change the encodig of the result from script A, and use it as parameter in script B.
So: is there any simple way to change a string from UTF-8 to ISO-88591 in PHP? I have looked at utf_encode and _decode, but they doesn’t do what i want. Why doesn’t there exsist any "utf2iso()"-function, or similar?
I don’t think I have characters that can’t be written in ISO-format, so that shouldn’t be an huge issue.