用ö替换特殊字符Ã

时间:2014-04-05 14:14:11

标签: php html xml

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

有人可以帮帮我吗?

内容: Preise sind ohne Mehrwertsteuer。一个模特abgelesen Laufleistung,abgegeben Massen,Spezifikationen和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;

2 个答案:

答案 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;

?>

答案 1 :(得分:0)

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

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