Как преобразовать «Ã ©» в «é» в PHP?

Я пытаюсь преобразовать строку из этого: «Ã ©» в это: «é». Это латинский иероглиф, но я не могу его сделать правильно. До сих пор я пробовал две функции, но ни одна из них не дает мне правильного результата.

$translation = 'Copà © rnico was Italian';
$translation = mb_convert_encoding($translation, 'utf-8', 'iso-8859-1'); //opt 1
$translation = iconv('utf-8', 'latin1', $translation); //opt 2

Я получаю эти данные из Api, поэтому не знаю, что происходит в базе данных. Это строка на испанском: Copérnico es italiano. Это данные из API: Copà © rnico - итальянский Это результат с $ translation = bin2hex ($ translation); 436f70c38320c2a920726e69636f206973204974616c69616e

Какой правильный путь? Привет.

Вы пробовали utf8_encode()?

Naveed Ramzan 10.04.2018 16:16

Может это уже UTF-8 с плохими символами?

Justinas 10.04.2018 16:16

Возможный дубликат UTF-8 полностью

CD001 10.04.2018 16:20

Если вы видите моджибаке, это означает, что вы не интерпретируете некоторые байты с использованием правильной кодировки. Проблема либо в том, что вы просто неправильно обрабатываете правильные байты, либо в том, что вы испортили данные, которые буквально выражают буквы «©». По данной информации невозможно узнать, что это такое. Начните с echo bin2hex($translation), чтобы увидеть, что байты содержит строка, на основе этого выясните, какая это кодировка, а затем выясните, какая кодировка у вас хочу.

deceze 10.04.2018 16:24

@NaveedRamzan Да, и он добавляет больше символов: $ translation = utf8_encode ($ translation); Копернико был итальянцем

Diego 10.04.2018 16:46

@deceze Я получаю эти данные из Api, поэтому не знаю, что происходит в базе данных. Это строка на испанском языке: Copérnico es italiano Это данные из API: Copérnico is Italian Это результат с $ translation = bin2hex ($ translation); 436f70c38320c2a920726e69636f206973204974616c69616e Я не могу понять, что это за кодировка, поэтому любые рекомендации отсюда были бы отличными. Спасибо.

Diego 10.04.2018 16:55

Поместите эту информацию в свой вопрос.

deceze 10.04.2018 16:58

Я нажал кнопку «Открыть», но я не думаю, что он дойдет до полного открытия. Вам нужно выяснить, что написало неправильно и почему, прежде чем пытаться исправить это здесь. Только зная точное неправильное преобразование, можно дать разворот.

Joshua 10.04.2018 19:11
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
8
1 528
1

Ответы 1

У меня была такая же проблема раньше, и этот вариант

$translation = iconv('utf-8', 'latin1', $translation); //opt 2
work verry well. Your problem is `Copà © rnico был итальянцем` is not the same than `Copà © rnico был итальянцем`.

Поэтому, когда вы пытаетесь преобразовать функцию iconv, видите 2 неправильных символа UTF-8, потому что de пробелы - это не то же самое "Ã ©" (2 недопустимых символа UTF-8 и 2 пробела), чем "Ã ©" (1 действительный символ UTF-8)

Другие вопросы по теме