Ruby String の互換性のあるエンコーディングのリストを取得するにはどうすればよいですか? (MRI 1.9.3)
ユースケース: UTF-8 でエンコードされたユーザー提供の文字列がいくつかあります。理想的にはそれらをISO/IEC 8859-1
(8 ビット) に変換する必要がありますが、一部の特殊文字が存在する場合は Unicode にフォールバックする必要もあります。
また、これを達成するためのより良い方法はありますか? 多分私は間違ったことをテストしています。
編集-詳細を追加
する答えのタンク、おそらくいくつかのコンテキストを追加する必要があります。エンコーディング変換を実行する方法を知っています。
文字列を別のエンコーディングに安全にエンコードできるかどうか、または別の(そしてまったく間違った)方法で言えば、その文字列内のすべての文字をサポートするため の最小エンコーディングは何かをすばやく調べる方法を探しています。
文字列を 16 バイトに変換するだけでは解決できません。文字列は SMS として送信され、16 バイトのエンコーディングに変換すると、使用可能な文字数が 160 から 70 に減少するためです。
でサポートされていない特殊文字が含まれている場合にのみ、それらを 16 バイトに変換する必要がありますISO/IEC 8859-1
。