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