iconv 関数と mb_convert_encoding 関数間のトランスコーディングの問題
これら 2 つの関数には独自の特徴があります
1. iconv は高速で当然ながら好まれますが、変換できない文字に遭遇すると、そこから切り捨てられるという欠点があります。その結果、トランスコーディング中にコンテンツが理由もなく切り詰められます。
2. mb_convert_encoding 関数は比較的効率が悪いですが、変換できないコンテンツは切り詰められないため、コンテンツの整合性はほぼ維持されます。しかし、コンテンツにスペースが含まれている場合、変換されたコンテンツにもスペースが含まれることがわかりました。このシンボルはまだ完璧ではありません。
これら 2 つの関数を組み合わせて文字をトランスコードするにはどうすればよいですか?
私のアイデアは次のとおりです:
iconv 関数は効率的で組み込み関数であるため、必ず最初にこの関数を使用してください。 discuz のトランスコーディング機能もこの機能を優先して使用しますが、トランスコーディングが不完全な場合は、mb_convert_encoding を調整して、そのトランスコーディングが不完全であることをどのように判断するかが問題になります。