Here is the solution I prepared for the problem with a set of portable windows that are not portable. This replaces offensive Latin-1 characters with their equivalent HTML objects.
$translation=array( // reference from http://www.cs.tut.fi/~jkorpela/www/windows-chars.html "\x82" => "‚", "\x83" => "ƒ", "\x84" => "„", "\x85" => "…", "\x86" => "†", "\x87" => "‡", "\x88" => "ˆ", "\x89" => "‰", "\x8a" => "Š", "\x8b" => "‹", "\x8c" => "Œ", "\x91" => "‘", "\x92" => "’", "\x93" => "“", "\x94" => "”", "\x95" => "•", "\x96" => "–", "\x97" => "—", "\x98" => "˜", "\x99" => "™", "\x9a" => "š", "\x9b" => "›", "\x9c" => "œ", "\x9f" => "Ÿ", ); return str_replace(array_keys($translation),array_values($translation),$input);
It works for me TM
tylerl Jul 03 2018-11-11T00: 00Z
source share