mb_
PHP関数に基づいてデータベースに保存するために、インポートされたIPTCメタデータを画像からUTF-8に自動的に変換しようとしています。
現在、次のようになっています。
$val = mb_convert_encoding($val, 'UTF-8', mb_detect_encoding($val));
ただし、mb_detect_encoding()
ASCII 文字列 (Latin1 フィールドの 192 ~ 255 の特殊文字) が提供されると、それが UTF-8 として検出されるため、すべてを適切な UTF-8 に変換しようとすると、すべての特殊文字が削除されます。
Latin1 の値を探して独自のメソッドを作成しようとしましたが、何も起こらなかった場合mb_detect_encoding
は、それが何であるかを判断させます。しかし、他のエンコーディングが他のものに同じバイト値を使用していないかどうか確信が持てないことに気付いたとき、途中でやめました。
mb_convert_encoding
では、ソース エンコーディングとしてフィードする ASCII を適切に検出する方法はありますか?