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

Python、MySQLエラーを回避するために4バイト文字を変換します不正な文字列値:

    UCS-2ビルドでは、Pythonは \ U0000ffff上のUnicode文字ごとに内部で2つのコードユニットを使用します コードポイント。正規表現はそれらと連携する必要があるため、これらに一致させるには次の正規表現を使用する必要があります。

    highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
    

    この正規表現は、UTF-16サロゲートペアでエンコードされたすべてのコードポイントに一致します(UTF-16コードポイントU+10000からU+10FFFF

    これをPythonUCS-2バージョンとUCS-4バージョン間で互換性を持たせるには、 try:を使用できます。 /例外 どちらか一方を使用するには:

    try:
        highpoints = re.compile(u'[\U00010000-\U0010ffff]')
    except re.error:
        # UCS-2 build
        highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
    

    UCS-2 pythonビルドのデモンストレーション:

    >>> import re
    >>> highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
    >>> example = u'Some example text with a sleepy face: \U0001f62a'
    >>> highpoints.sub(u'', example)
    u'Some example text with a sleepy face: '
    



    1. Ubuntu20.04DigitalOceanにPostgreSQL12をインストールする方法

    2. java.lang.IllegalStateException:閉じたEntityManagerFactoryで操作を実行しようとしています

    3. *の代わりにSequelize(NodeJS)を使用して特定のフィールドを指定する

    4. MySQLで非数字を置き換える方法は?