smtpapi-ruby:サロゲートペア対応したよ
smtpapi-rubyにサロゲートペア対応を入れてみました。
smtpapi-rubyはrubyでSendGridのx-smtpapiヘッダにセットする値を生成するためのライブラリです。x-smtpapiヘッダの値にはJSON文字列をセットするのですが、非ASCII文字はUnicodeエスケープする必要があります。で、さらにコードポイント0x10000以降の文字についてはサロゲートペアを使って符号化してあげる必要があります。
今回の対応で、x-smtpapi内(ありがちなのがSubstitutionとかSectionとかで文字を置換するケース)でサロゲートペアが必要な文字が文字化けせずにちゃんとメールが送れるようになったよ、っていうのが今回の記事の内容です。
早速試しに送ってみます。
ゴチャゴチャと読めない部分4文字がサロゲートペアが必要な文字列です。なんて読むのかはわかりませんが。けして文字化けしたわけじゃありません。というわけでSubstitutionの値として設定してもちゃんと置換してくれることが確認できました。
各文字のコードポイント
0x291B0
0x291B1
0x291D3
0x291D4
やり方はわかったので他の言語のライブラリもやってみようかな。はたして使ってくれるが世界で何人いるかわかりませんが。
smtpapi-rubyはrubyでSendGridのx-smtpapiヘッダにセットする値を生成するためのライブラリです。x-smtpapiヘッダの値にはJSON文字列をセットするのですが、非ASCII文字はUnicodeエスケープする必要があります。で、さらにコードポイント0x10000以降の文字についてはサロゲートペアを使って符号化してあげる必要があります。
今回の対応で、x-smtpapi内(ありがちなのがSubstitutionとかSectionとかで文字を置換するケース)でサロゲートペアが必要な文字が文字化けせずにちゃんとメールが送れるようになったよ、っていうのが今回の記事の内容です。
早速試しに送ってみます。
ゴチャゴチャと読めない部分4文字がサロゲートペアが必要な文字列です。なんて読むのかはわかりませんが。けして文字化けしたわけじゃありません。というわけでSubstitutionの値として設定してもちゃんと置換してくれることが確認できました。
0x291B0
0x291B1
0x291D3
0x291D4
やり方はわかったので他の言語のライブラリもやってみようかな。はたして使ってくれるが世界で何人いるかわかりませんが。
コメント
コメントを投稿