MySQL の Unicode 文字フィルタリング
MySQL の utf8 実装には、4 バイト文字をサポートしないという制限があります。この問題を解決するには、データベースにデータを保存する前にそのような文字をフィルタリングする必要がある場合があります。
UTF-8 で 3 バイトを超える Unicode 文字をフィルタリングする 1 つの方法は、正規表現を使用することです。次の Python スニペットは、このアプローチを示しています。
<code class="python">import re re_pattern = re.compile(u'[^\u0000-\uD7FF\uE000-\uFFFF]', re.UNICODE) def filter_using_re(unicode_string): return re_pattern.sub(u'\uFFFD', unicode_string) # Example usage: unicode_string = "Hello, world! This is a unicode string with some 4-byte characters." filtered_string = filter_using_re(unicode_string)</code>
提供されたコードでは、re_pattern は UTF-8 で 3 バイトを超える Unicode 文字と一致し、サブ関数はそれらを REPLACEMENT CHARACTER (uFFFD) に置き換えます。 )。ユーザーは、「?」などの別の希望の置換文字に置き換えることもできます。
このアプローチを利用すると、ユーザーは MySQL に保存される前にサポートされていない Unicode 文字を効果的に除外し、データベースの制限との互換性を確保できます。
以上がMySQL でサポートされていない Unicode 文字をフィルタリングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。