заменить специальный символ Ã · на ö

0

Для клиента я создал XML-соединение, и это работает отлично, но в содержании есть символ типа "Ã ·", этот символ должен быть "ö". Я уже искал этот и другие форумы, но я не нашел решения. Даже preg_replace не работает.

Может ли кто-нибудь помочь мне?

Содержание: Preise sind ohne Mehrwertsteuer. "Смерть", "Освобождение Массена", "Spezifikationen und Gewichten kà · nnen keine Rechten abgeleitet werden".

Необходимо преобразовать в: Preise sind ohne Mehrwertsteuer. Штамп abgelesen Laufleistung, abgegeben Massen, Spezifikationen унд Gewichten können KEINE Rechten abgeleitet Werden.

Пробовал с сообщений, но не работал:

$content = $sitemap[0]->description;

// replace line breaks with <br /> 
$html = nl2br(htmlspecialchars($content)); 

$output=str_replace('÷', 'ö', $html); 

echo $output; 

А также

$content = $sitemap[0]->description;

// replace line breaks with <br /> 
$html = nl2br(htmlspecialchars($content)); 

$output=str_replace('÷', 'ö', $html); 

echo $output;
  • 1
    Почему его следует заменить? Какая логика стоит за этим? Что вы пробовали до сих пор, чтобы добиться этого?
  • 0
    У него есть контент на многих языках, таких как голландский, английский и немецкий. Слово должно быть können вместо kÃnnen - $ html = preg_replace ('/ kà · nnen /', 'konnen', $ html);
Показать ещё 2 комментария
Теги:

2 ответа

0

Когда вы видите комбинацию символов, например, Ã · на экране, это неизменно, потому что у вас есть (где-то в конвейере обработки) контент, который закодирован в UTF-8, но который считывается некоторым программным компонентом, который считает, что он закодирован в Latin-1 (или что-то подобное, например, Windows CP1252).

Проблема заключается в том, чтобы проследить это через конвейер обработки, чтобы выяснить, где произошла ошибка. Это может быть на завершающей стадии отображения вывода, или это может происходить раньше. Вам нужно проследить данные на всех этапах обработки, чтобы выяснить, где это происходит, и в точке, где происходит "недоразумение", изменить конфигурацию одного из недокомментирующих компонентов, чтобы согласовать кодировку символов используются.

  • 0
    Спасибо за ваш ответ, я проверил, и кажется, что ошибка в кодировке XML, но когда я изменил кодировку XML с UTF-8 на Latin-1 / ISO-8859-1 / ISO-8859-15 или Windows-1252 показывает kšnnen вместо können. Я искал в Google и WikiPedia, и оба результата говорят, что ISO-8859-1 должен быть правильным для умлаутов. Но это не работает для меня ..
  • 0
    Используйте шестнадцатеричный редактор, чтобы выяснить, какова действительная двоичная кодировка оскорбительного символа.
0

Редактировать # 2: я почти на 100% убежден, что ваш клиент действительно вводит правильный символ и записывается в файл под другим методом кодирования, и это вполне может обеспечить способ, которым стандартная кодировка сервера установлена на, Я столкнулся с " точной " проблемой/проблемой до и не мог изменить настройки сервера и должен был прибегнуть к поиску и замене символов перед записью в файл.


Оригинальный ответ, который не сработал, скорее всего, из-за моего комментария выше. ^^^

Вы можете добиться этого, используя str_replace().

<?php
$replace='k÷nnen';
$new=str_replace('÷', 'ö', $replace); 

echo $new;

будет эхо können


Редактировать 1

Я протестировал это, и он сработал, минус [0]->description так как я не знаю, с чего тянется контент.

<?php
$sitemap = "Preise sind ohne Mehrwertsteuer. An die abgelesen Laufleistung , abgegeben Massen, Spezifikationen und Gewichten k÷nnen keine Rechten abgeleitet werden.";

// $content = $sitemap[0]->description; // replace line breaks with <br />
$content = $sitemap; // replace line breaks with <br /> 

$html = nl2br(htmlspecialchars($content)); 
$output=str_replace('÷', 'ö', $html); 
echo $output;

?>
  • 0
    Не работает для меня, может быть, потому что мне нужно повторить много контента? У меня есть следующее содержание: Preise sind ohne Mehrwertsteuer. Die abgelesen Laufleistung, abgegeben Massen, Spezifikationen und Gewichten kénnen keine Rechten abgeleitet werden. И мой в настоящее время php: $ content = $ sitemap [0] -> description; // заменить разрывы строк на <br /> $ html = nl2br (htmlspecialchars ($ content)); $ output = str_replace ('Ã ·', 'ö', $ html); вывод echo $; Но это не работает, это продолжает давать мне деньги
  • 0
    Дайте мне посмотреть, что еще я могу придумать. @ user3366162
Показать ещё 15 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню