将特殊字符 ÷ 替换为 ö


replace special character ÷ with ö

对于客户,我做了一个XML耦合,工作正常,但是在内容中有一个像"÷"这样的字符,该字符必须是"ö"。我已经在这个论坛和其他论坛上搜索过,但我找不到任何解决方案。即使preg_replace也不起作用。

有人可以帮助我吗?

内容:Preise sind ohne Mehrwertsteuer.An die abgelesen Laufleistung , abgegeben Massen, Spezifikationen und Gewichten k÷nnen keine Rechten abgeleitet werden.

必须转换为: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 /> 
$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;

编辑#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;
?>

当您在屏幕上看到像 ÷ 这样的字符组合时,这总是因为您(在处理管道中的某个地方)内容以 UTF-8 编码,但某些软件组件正在读取该内容,该组件认为它是用拉丁语编码的(或类似的东西,例如 Windows CP1252)。

问题在于通过处理管道追溯此问题,以找出错误发生的位置。它可能处于显示输出的最后阶段,也可能更早发生。您需要通过所有处理阶段追溯数据以找出出错的地方,并在发生"误解"的点更改其中一个错误组件的配置,以便就他们使用的字符编码达成一致。