概要

Pythonコード上で文字列からサロゲートペア文字を取り除く必要がありました。
サロゲートペア文字と、取り除いた対処法についてまとめます。

背景

「特定の条件を満たすメールを受信した場合に外部サービスに起票するシステム」を開発・運用していて、起票対象のメールにiOSの絵文字などサロゲートペア文字が含まれているとBacklogの起票に失敗※してしまいました。

サポートに問い合わせたところサロゲートペア文字に対応していないと回答いただいたので、Backlogへ起票する前にサロゲートペア文字を取り除く処理をいれることにしました。

※失敗時にはAPIからレスポンスとして「code:1 Incorrect String」が返ってきます。Web画面で直接課題を起票した場合は「Backlogがサポートしていない文字「🏣」が詳細に含まれています」といったメッセージが出ます。

サロゲートペア文字とは

通常文字は2バイトですが、サロゲートペア文字は4バイト(2文字分)あります。
Unicodeで「U+16進数5桁(U+10000 ~ U+1FFFFF)」の範囲になります。


全文はこちら:サロゲートペア文字を取り除く方法(Python)
著者:@y-kob