$str = str_replace ('–', '-', $str);
動作しません (私が望むように、長い Unicode ダッシュ文字はマイナス文字に置き換えられません。
$str はデータベースから読み取られ、UTF-8 である必要があります。
PHP コードは Apache サーバーから実行されます。
これらの長いダッシュをすべてマイナス文字に置き換える必要があります。
$ダッシュ = "–"; echo "文字列: " . bin2hex($str) . ", ダッシュ: " . bin2hex($ダッシュ) . "\n"; echo "文字列: " . $str . ", ダッシュ: " . $ダッシュ。"\n"; string: 5a656c626f726166202623383231313b20d0bdd0bed0b2d18bd0b920d0bfd180d0b5d0bfd0b0d180d0b0d18220d0b4d0bbd18f20d0bbd0b5d187d0b5d0bdd0b8d18f20d0bcd0b5d0bbd0b0d0bdd0bed0bcd18b, dash: e28093 文字列: Zelboraf – новый препарат для лечения меланомы, ダッシュ: –</pre>何が間違っていますか (適切な UTF-8 ではありません): 文字列またはダッシュ?