非 UTF-8 文字を含む UTF-8 文字列をデコードするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-14 09:22:02
オリジナル
625 人が閲覧しました

How to Decode UTF-8 Strings with Non-UTF-8 Characters?

UTF-8 文字列のデコード

エラー「UnicodeDecodeError: 'utf8' codec can't decode byte 0x9c」が発生すると、通常、非 UTF-8 文字がデータ内に存在することを示します。これに対処するには、このような文字を処理し、文字列を UTF-8 準拠にするための堅牢なアプローチが必要です。

MTA などのコマンドベースのプロトコルなど、非 UTF-8 文字が予期されない場合には、これらの文字を削除するのが効果的な解決策です。

解決策

Python では、非 UTF-8 文字を処理するためのメソッドがいくつか提供されています。

  • unicode() で 'replace' または 'ignore' エラーが発生しました: 非 UTF-8 文字を置換文字 ('?' など) に置き換えるか、完全に無視します。
str = unicode(str, errors='replace')
str = unicode(str, errors='ignore')
ログイン後にコピー
  • ファイルからの読み取り時に「無視」エラーが発生する UTF-8 エンコード:
import codecs
with codecs.open(file_name, 'r', encoding='utf-8',
                 errors='ignore') as fdata:
ログイン後にコピー

これにより、文字列を保持する非 UTF-8 文字が無視されます。

アプリケーション固有の考慮事項

方法の選択は、特定のアプリケーションによって異なります。場合によっては、データの破損を避けるために、非 UTF-8 文字を無視または置換することが望ましい場合があります。ただし、データの整合性が重要な状況では、文字の正規化や例外処理などの代替方法を検討する必要があります。

以上が非 UTF-8 文字を含む UTF-8 文字列をデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート