[解決済み】テキストのエンコードを判断する方法は?
2022-04-04 10:43:51
質問
エンコードされたテキストを受け取りましたが、どのような文字セットが使用されているのかわかりません。Pythonを使用してテキストファイルのエンコーディングを判断する方法はありますか? テキストファイルのエンコーディング/コードページを検出する方法 はC#を扱います。
どのように解決するのですか?
EDIT: chardetはメンテナンスされていないようですが、ほとんどの回答が当てはまります。チェック https://pypi.org/project/charset-normalizer/ 代替案として
エンコーディングを常に正しく検出することは 不可能 .
(シャルデFAQより)
しかし、いくつかのエンコーディングは、最適化されています。 特定の言語のために、そして言語 はランダムではありません。ある文字 が常に出現し、一方 他の配列は意味をなさない。A 英語に堪能な人が 新聞に「txzqJv 2!dasd0a」と書かれているのを見つけた。 QqdKjvz "は瞬時に認識されるでしょう。 それは英語ではありません(たとえそれが 英字だけで構成されています)。 たくさんの「典型的な」テキストを研究することで コンピュータのアルゴリズムは、このようなことをシミュレートすることができます。 流暢に話すことができ、経験豊かな を推測することができます。
があります。 シャルデ chardetはMozillaの自動検出コードを移植したものです。
を使用することもできます。 ユニコードダミット . 以下の方法で試行します。
- ドキュメント自体で発見されたエンコーディング:例えば、XML宣言や(HTMLドキュメントの)http-equiv METAタグの中で発見されました。Beautiful Soupは、ドキュメント内でこの種のエンコーディングを見つけた場合、ドキュメントを最初からもう一度解析し、新しいエンコーディングを試します。唯一の例外は、あなたが明示的にエンコーディングを指定し、そのエンコーディングが実際に機能した場合です:その場合、ドキュメント内で見つけたエンコーディングはすべて無視されます。
- ファイルの最初の数バイトを見て、嗅ぎつけたエンコーディング。この段階でエンコーディングが検出された場合、UTF-* エンコーディング、EBCDIC、ASCII のいずれかになります。
- によって嗅ぎつけられたエンコーディングは シャルデ ライブラリがインストールされていれば、それを使用します。
- UTF-8
- Windows-1252
関連
-
ピロウズ画像色処理の具体的な活用方法
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
-
[解決済み] JSONファイルをprettyprintする方法は?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
PythonはWordの読み書きの変更操作を実装している
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】ValueError: xとyは同じサイズでなければならない