Perl Unicode FAQ 「デコードしないとどうなりますか?」の引用
エンコードされたバイナリ文字列がテキスト文字列と一緒に使用されるときは常に、Perl はバイナリ文字列が ISO-8859-1 (latin-1 としても知られる) でエンコードされていると想定します。Latin-1 でない場合、データは不愉快に変換されます。たとえば、UTF-8 の場合、マルチバイト文字の個々のバイトは個別の文字として認識され、再度 UTF-8 に変換されます。このような二重エンコーディングは、二重 HTML エンコーディング (>) または二重 URI エンコーディング (%253E) と比較できます。
この暗黙の暗黙のデコードは、「アップグレード」として知られています。ポジティブに聞こえるかもしれませんが、避けるのが一番です。
この暗黙のデコーディングを無効にすると、プログラマはdecode()
/encode()
を適切に使用せざるを得なくなり、バグの防止に役立ちます。
暗黙のデコードを無効にすることはできますか? 理想的には、バイナリ文字列をテキスト文字列と一緒に使用するとエラーが発生します。