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

UTF-8で3バイトを超えるUnicode文字をフィルタリング(または置換)するにはどうすればよいですか?

    \ u0000-\uD7FFおよび\uE000-\ uFFFFの範囲のUnicode文字は、UTF8で3バイト(またはそれ以下)のエンコーディングになります。 \ uD800- \ uDFFFの範囲は、マルチバイトUTF16用です。 Pythonはわかりませんが、これらの範囲外に一致する正規表現を設定できるはずです。

    pattern = re.compile("[\uD800-\uDFFF].", re.UNICODE)
    pattern = re.compile("[^\u0000-\uFFFF]", re.UNICODE)
    

    質問本文にDenilsonSáのスクリプトからPythonを追加して編集します:

    re_pattern = re.compile(u'[^\u0000-\uD7FF\uE000-\uFFFF]', re.UNICODE)
    filtered_string = re_pattern.sub(u'\uFFFD', unicode_string)    
    


    1. Oracle:RAISE_APPLICATION_ERRORを使用する状況はどうなっていますか?

    2. ストアドプロシージャをサポートするnodejs上のmysqlのドライバーはありますか?

    3. OracleのVフォーマット要素について

    4. SQL ServerがNVarcharフィールドに日本語文字ではなく疑問符文字を格納するのはなぜですか?