sql >> データベース >  >> RDS >> Mysql

文字列から絵文字を削除するにはどうすればよいですか?

    BMP以外のすべての文字、つまりUnicodeコードポイントがU + 10000以上の文字をすべて削除したい場合は、正規表現を使用してUTF-16代理を削除できます。 文字列からのコード単位。例:

    using System;
    using System.Text.RegularExpressions;
    
    class Test
    {
        static void Main(string[] args)
        {
            string text = "x\U0001F310y";
            Console.WriteLine(text.Length); // 4
            string result = Regex.Replace(text, @"\p{Cs}", "");
            Console.WriteLine(result); // 2
        }
    }
    

    ここで、「Cs」は「代理」のUnicodeカテゴリです。

    Regexのようです UnicodeコードポイントではなくUTF-16コードユニットに基づいて機能します。そうでない場合は、別のアプローチが必要になります。

    絵文字以外の非BMP文字もありますが、保存しようとすると同じ問題が発生する可能性があります。




    1. PHPを使用して複数のMySQLテーブルを作成する

    2. グレゴリオ暦以外の日付をMysqlの日付タイプに保存する

    3. クエリを実行して、子レコードを含む親レコードを取得し、続いてmysqlの次の親子レコードを取得します

    4. sequelizeを使用してローカルノードアプリからherokupostgresqlデータベースに接続できません