データベースからテキストを取得して処理し、プレーン テキストとして HTML メール クリエーターにアップロードしています。メール ツールは社内用です。単純な HTML タグを使用できますが、ASCII 以外の文字を処理することはできません。それらは¿
エンドユーザーに関して表示されます。私が取り組んでいるものの例として、データベースからのソース テキストは次のようになります。
The café was…<br/>“delicious”.
私の望ましい出力は
The café was…<br/>“delicious”.
HTMLEntitiesのような HTML エンティティ エンコーダーを使用すると、タグ ブラケット (<
と>
) を含むすべてがエンコードされます。HTMLEntities を使用した出力は次のとおりです。
The café was…<br/>“delicious”.
上記を HTML メール ツールにアップロードすると、エンド ユーザーのメールに次のように表示されます。
The café was…<br/>“delicious”
タグはそのままにして、非 ASCII 文字を HTML エンティティとしてエンコードするという、両方の長所を活かす方法はありますか? HTMLEntities を引き続き使用して、単にgsub
;を使用することもできます。このようなもの:
coder = HTMLEntities.new
string = "The café was…<br/>“delicious”."
coder.encode(string, :named).gsub(/</, "<").gsub(/>/, ">")
#=> "The café was…<br/>“delicious”."
これは私にはかなり壊れやすいようです。それを行うより良い方法はありますか?