Python stringでemoji表情文字を削除(フィルタ)する
2404 ワード
最近1つの需要をして、公衆番号のユーザー情報をサービス側に同期して、多くのユーザーのニックネームの中に表情記号(emoji)があることを発見して、一般的な処理方式はMySQLの符号化をutf 8 mb 4に変えて、それから討論して、これらの表情も何の役にも立たないで、入庫する時直接削除すればいいです.
ろ過方法
Pythonはどのようにemojiの表情記号をフィルタしますか?次に、表情文字列を除去するコードクリップpython 2を示す.7テスト
removing-emojis-from-a-string-in-pythonを参照して、正則的にペアを書いていない場合は
ここではunicodeの範囲に基づいて表情記号を削除しますが、共通のものとIOSのものでは、あまりそろっていないはずですし、非常に完全なリストも見つかりませんでした.後で書き込みフィルタリングが抜けないことを確認したら、フィールドをutf 8 mb 4に変更したほうがいいです.より完全なフィルタリング方法があれば、共有を歓迎します.
文字コードの変更
完全にフィルタリングしたり保存したりすることができず、
MySQLはutf 8 mb 4を格納する際に4バイトを使用するため、utf 8を直接使用するよりも多くのcharset-unicode-utf 8 mb 4を使用するため、フィールドの長さを再考してください.そうしないと
その他 jsでemoji表情記号 を削除する方法
ろ過方法
Pythonはどのようにemojiの表情記号をフィルタしますか?次に、表情文字列を除去するコードクリップpython 2を示す.7テスト
import re
emoji_pattern = re.compile(
u"(\ud83d[\ude00-\ude4f])|" # emoticons
u"(\ud83c[\udf00-\uffff])|" # symbols & pictographs (1 of 2)
u"(\ud83d[\u0000-\uddff])|" # symbols & pictographs (2 of 2)
u"(\ud83d[\ude80-\udeff])|" # transport & map symbols
u"(\ud83c[\udde0-\uddff])" # flags (iOS)
"+", flags=re.UNICODE)
def remove_emoji(text):
return emoji_pattern.sub(r'', text)
removing-emojis-from-a-string-in-pythonを参照して、正則的にペアを書いていない場合は
sre_constants.error: bad character range
などのエラーに遭遇することができます.ここではunicodeの範囲に基づいて表情記号を削除しますが、共通のものとIOSのものでは、あまりそろっていないはずですし、非常に完全なリストも見つかりませんでした.後で書き込みフィルタリングが抜けないことを確認したら、フィールドをutf 8 mb 4に変更したほうがいいです.より完全なフィルタリング方法があれば、共有を歓迎します.
文字コードの変更
完全にフィルタリングしたり保存したりすることができず、
emoji
の符号化設定を変更するしかなかった(mysql 5.6テスト)ALTER TABLE `table_name` MODIFY `nickname` VARCHAR(40) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
MySQLはutf 8 mb 4を格納する際に4バイトを使用するため、utf 8を直接使用するよりも多くのcharset-unicode-utf 8 mb 4を使用するため、フィールドの長さを再考してください.そうしないと
(1406, "Data too long for column 'nickname' at row 1")
などのエラーが発生する可能性があります.その他