本記事(記事カラム)には広告が含まれています。

2026-03-01 UTF-8 BOM判定ソフトの開発

記事内に広告が含まれています。

今日はUTF-8についていろいろ調べました。そのついでに、PythonでUTF-8のBOM判定するソフトを作ってみました。

【試してみる際のお願い】

  • プログラミングは、お使いのパソコンの環境(OSやアプリのバージョン)によって、同じコードでもエラーが出るケースがよくあります。
  • 外部での実行や利用を想定して作られていないため、万が一、動作を試されたことにより不具合等の損害が生じても、当方は一切の責任を負いかねます。
  • 自分用のメモにつき、質問やバグ修正などの個別サポートは一切行っておりません。試す場合は完全な自己責任でお願いいたします。
import tkinter as tk
from tkinter import filedialog

# ウィジェットの作成と配置
root = tk.Tk()
root.title("UTF-8 BOM 判定アプリ")
root.geometry("400x200")

top_message = tk.Label(root, text="UTF-8 以外は BOM 判定が無意味です")
top_message.pack(pady=10)

btn = tk.Button(root, text="ファイルを選択")
btn.pack(pady=10)

filename_label = tk.Label(root, text="ファイル: 未選択")
filename_label.pack(pady=10)

result_label = tk.Label(root, text="未判定")
result_label.pack(pady=10)


# コールバック関数の定義
def check_bom():
    path = filedialog.askopenfilename(filetypes=[("All files", "*.*")])
    if not path:
        return

    filename_label.config(text=f"ファイル: {path}")

    with open(path, "rb") as f:
        first3 = f.read(3)

    if first3 == b"\xef\xbb\xbf":
        result_label.config(text="BOM あり(UTF-8 with BOM)")
    else:
        result_label.config(text="BOM なし(UTF-8)")


# commandを設定する
btn.config(command=check_bom)


# メインループ
root.mainloop()

HR


人気ブログランキング