Microsoft mal wieder… :-(

Die drei Punkte in der Überschrift greifen das Thema schon auf.
Drei Punkte gibt es auch als Schriftzeichen im UTF-8 Zeichensatz und ebenso im Windows CP1252.
MS Word und auch MS Excel wandeln oft automatisch '...' in dieses eine Entity um.
Will man nun diesen Text in einem ISO-8859-1 (o.ä.) Format darstellen wird das '...'-Zeichen (… - horizontal ellipsis) als '?' dargestellt, da es im ISO-8859-1 Charset gar nicht vorkommt.

Die einzige Chance ist das "Suchen und Ersetzen" innerhalb des Strings mit der PHP Extension mbstring (Link).
Man sucht das Vorkommen und ersetzt es mit drei Punkten, dann ist alles wieder gut...

Hier ein wenig PHP Code dafür:

/** 
* Multibyte equivalent for htmlentities() (just selected items <, >, ", ' and … (&hellip;) ) 
* 
* @link http://php.net/manual/de/function.mb-ereg-replace.php#62370 
* @param string $str String to be examined 
* @param string $encoding charset encoding 
* @return string 
**/ 
public function mb_htmlentities($str, $encoding = 'utf-8') 
{ 
    mb_regex_encoding($encoding); 
    $pattern = array('<', '>', '"', '\'', '…'); 
    $replacement = array('<', '>', '&quot;', '&#39;', '...'); 

    for ($i=0; $i<sizeof($pattern); $i++) 
    {
        $str = mb_ereg_replace($pattern[$i], $replacement[$i], $str); 
    } 

    return $str; 
}